15685782 SUNBT7005330 NET-SNMP upgrade to latest stable version
authorgowtham thommandra - Sun Microsystems - Bangalore India <Gowtham.Thommandra@Sun.COM>
Tue, 14 May 2013 22:57:32 -0700
changeset 1301 636f7c363f41
parent 1300 28b2a59f68b0
child 1302 4838d241e95c
15685782 SUNBT7005330 NET-SNMP upgrade to latest stable version
components/net-snmp/net-snmp-26.p5m
components/net-snmp/net-snmp-27.p5m
components/net-snmp/net-snmp-addons.p5m
components/net-snmp/net-snmp-base.p5m
components/net-snmp/net-snmp-documentation.p5m
components/net-snmp/patches/001.scapi.patch
components/net-snmp/patches/003.solaris-ip-mib.patch
components/net-snmp/patches/004.16436.patch
components/net-snmp/patches/005.16736.patch
components/net-snmp/patches/006.16742.patch
components/net-snmp/patches/007.16863.patch
components/net-snmp/patches/009.ltmain.sh.patch
components/net-snmp/patches/011.Makefile.in.patch
components/net-snmp/patches/013.6852099.proxy.patch
components/net-snmp/patches/017.6984919.kernel_sunos5.patch
components/net-snmp/patches/018.6932608.systemstats_common.patch
components/net-snmp/patches/019.6998845.container.patch
components/net-snmp/patches/021.7046749.snmp_api.patch
components/net-snmp/patches/025.7162956.util_funcs.patch
components/net-snmp/patches/026.7186501.cpu_kstat.patch
components/net-snmp/patches/027.7118090.hr_filesys.patch
components/net-snmp/patches/029.7097655.ipAddressTable_container.patch
components/net-snmp/resolve.deps
--- a/components/net-snmp/net-snmp-26.p5m	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/net-snmp-26.p5m	Tue May 14 22:57:32 2013 -0700
@@ -25,6 +25,7 @@
     value=pkg:/library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="The Net-SNMP - Python 2.6 bindings"
 set name=com.oracle.info.description value="Python 2.6 bindings for Net-SNMP"
+set name=com.oracle.info.tpno value=13120
 set name=info.classification \
     value=org.opensolaris.category.2008:Development/Python
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
--- a/components/net-snmp/net-snmp-27.p5m	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/net-snmp-27.p5m	Tue May 14 22:57:32 2013 -0700
@@ -25,6 +25,7 @@
     value=pkg:/library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="The Net-SNMP - Python 2.7 bindings"
 set name=com.oracle.info.description value="Python 2.7 bindings for Net-SNMP"
+set name=com.oracle.info.tpno value=13120
 set name=info.classification \
     value=org.opensolaris.category.2008:Development/Python
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
--- a/components/net-snmp/net-snmp-addons.p5m	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/net-snmp-addons.p5m	Tue May 14 22:57:32 2013 -0700
@@ -24,6 +24,7 @@
 set name=pkg.fmri value=pkg:/system/management/snmp/net-snmp/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="Net-SNMP addon libraries"
 set name=com.oracle.info.description value="the Net-SNMP addon libraries"
+set name=com.oracle.info.tpno value=13120
 set name=info.classification value="org.opensolaris.category.2008:System/Enterprise Management"
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
--- a/components/net-snmp/net-snmp-base.p5m	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/net-snmp-base.p5m	Tue May 14 22:57:32 2013 -0700
@@ -29,6 +29,7 @@
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 set name=com.oracle.info.description value="the Net-SNMP agent files and libraries"
+set name=com.oracle.info.tpno value=13120
 set name=info.classification value="org.opensolaris.category.2008:System/Enterprise Management"
 
 set name=org.opensolaris.arc-caseid \
@@ -102,6 +103,7 @@
 file local/mib2c-conf.d/syntax-RowStatus-varbind-validate.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-RowStatus-varbind-validate.m2i
 file local/mib2c-conf.d/syntax-StorageType-dependencies.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-StorageType-dependencies.m2i
 file local/mib2c-conf.d/syntax-TestAndIncr-get.m2i path=etc/net-snmp/snmp/mib2c-data/syntax-TestAndIncr-get.m2i
+file local/mib2c-conf.d/generic-get-U64.m2i path=etc/net-snmp/snmp/mib2c-data/generic-get-U64.m2i
 file local/mib2c.access_functions.conf path=etc/net-snmp/snmp/mib2c.access_functions.conf
 file local/mib2c.array-user.conf path=etc/net-snmp/snmp/mib2c.array-user.conf
 file local/mib2c.check_values.conf path=etc/net-snmp/snmp/mib2c.check_values.conf
@@ -121,6 +123,7 @@
 file local/mib2c.notify.conf path=etc/net-snmp/snmp/mib2c.notify.conf
 file local/mib2c.old-api.conf path=etc/net-snmp/snmp/mib2c.old-api.conf
 file local/mib2c.perl.conf path=etc/net-snmp/snmp/mib2c.perl.conf
+file local/mib2c.raw-table.conf path=etc/net-snmp/snmp/mib2c.raw-table.conf
 file local/mib2c.row.conf path=etc/net-snmp/snmp/mib2c.row.conf
 file local/mib2c.scalar.conf path=etc/net-snmp/snmp/mib2c.scalar.conf
 file local/mib2c.table_data.conf path=etc/net-snmp/snmp/mib2c.table_data.conf
@@ -132,6 +135,9 @@
 file $(MACH32)/sun/agent/mibs/SUN-SEA-PROXY-MIB.txt path=etc/net-snmp/snmp/mibs/SUN-SEA-PROXY-MIB.txt
 file $(MACH32)/sun/agent/mibs/smatrap.mib path=etc/net-snmp/snmp/mibs/smatrap.mib
 file mibs/AGENTX-MIB.txt path=etc/net-snmp/snmp/mibs/AGENTX-MIB.txt
+file mibs/BRIDGE-MIB.txt path=etc/net-snmp/snmp/mibs/BRIDGE-MIB.txt
+file mibs/NET-SNMP-PASS-MIB.txt path=etc/net-snmp/snmp/mibs/NET-SNMP-PASS-MIB.txt
+file mibs/SCTP-MIB.txt path=etc/net-snmp/snmp/mibs/SCTP-MIB.txt
 file mibs/DISMAN-EVENT-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-EVENT-MIB.txt
 file mibs/DISMAN-EXPRESSION-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-EXPRESSION-MIB.txt
 file mibs/DISMAN-NSLOOKUP-MIB.txt path=etc/net-snmp/snmp/mibs/DISMAN-NSLOOKUP-MIB.txt
@@ -228,6 +234,7 @@
 file path=usr/bin/mib2c
 file path=usr/bin/mib2c-update
 file usr/bin/net-snmp-config path=usr/bin/net-snmp-config-32
+file path=usr/bin/net-snmp-create-v3-user
 file build/prototype/$(MACH64)/usr/bin/$(MACH64)/net-snmp-config path=usr/bin/net-snmp-config-64
 file path=usr/bin/snmpbulkget
 file path=usr/bin/snmpbulkwalk
@@ -249,12 +256,17 @@
 file path=usr/bin/snmpwalk
 file path=usr/bin/tkmib
 file path=usr/bin/traptoemail
+file build/prototype/$(MACH64)/usr/bin/$(MACH64)/net-snmp-create-v3-user path=usr/bin/$(MACH64)/net-snmp-create-v3-user
+file build/prototype/$(MACH64)/usr/bin/$(MACH64)/agentxtrap path=usr/lib/$(MACH64)/agentxtrap
+file build/prototype/$(MACH64)/usr/bin/$(MACH64)/net-snmp-cert path=usr/lib/$(MACH64)/net-snmp-cert
+file build/prototype/$(MACH64)/usr/bin/$(MACH64)/snmp-bridge-mib path=usr/lib/$(MACH64)/snmp-bridge-mib
 file path=usr/include/net-snmp/agent/agent_callbacks.h
 file path=usr/include/net-snmp/agent/agent_handler.h
 file path=usr/include/net-snmp/agent/agent_index.h
 file path=usr/include/net-snmp/agent/agent_module_config.h
 file path=usr/include/net-snmp/agent/agent_read_config.h
 file path=usr/include/net-snmp/agent/agent_registry.h
+file path=usr/include/net-snmp/agent/agent_sysORTable.h
 file path=usr/include/net-snmp/agent/agent_trap.h
 file path=usr/include/net-snmp/agent/all_helpers.h
 file path=usr/include/net-snmp/agent/auto_nlist.h
@@ -280,9 +292,12 @@
 file path=usr/include/net-snmp/agent/serialize.h
 file path=usr/include/net-snmp/agent/set_helper.h
 file path=usr/include/net-snmp/agent/snmp_agent.h
+file path=usr/include/net-snmp/agent/snmp_get_statistic.h
 file path=usr/include/net-snmp/agent/snmp_vars.h
 file path=usr/include/net-snmp/agent/stash_cache.h
 file path=usr/include/net-snmp/agent/stash_to_next.h
+file path=usr/include/net-snmp/agent/struct.h
+file path=usr/include/net-snmp/agent/sysORTable.h
 file path=usr/include/net-snmp/agent/table_array.h
 file path=usr/include/net-snmp/agent/table_container.h
 file path=usr/include/net-snmp/agent/table_data.h
@@ -297,8 +312,8 @@
 file path=usr/include/net-snmp/definitions.h
 file path=usr/include/net-snmp/library/asn1.h
 file path=usr/include/net-snmp/library/callback.h
+file path=usr/include/net-snmp/library/cert_util.h
 file path=usr/include/net-snmp/library/check_varbind.h
-file path=usr/include/net-snmp/library/cmu_compat.h
 file path=usr/include/net-snmp/library/container_binary_array.h
 file path=usr/include/net-snmp/library/container_iterator.h
 file path=usr/include/net-snmp/library/container_list_ssll.h
@@ -306,16 +321,19 @@
 file path=usr/include/net-snmp/library/container.h
 file path=usr/include/net-snmp/library/data_list.h
 file path=usr/include/net-snmp/library/default_store.h
+file path=usr/include/net-snmp/library/dir_utils.h
 file path=usr/include/net-snmp/library/factory.h
 file path=usr/include/net-snmp/library/fd_event_manager.h
 file path=usr/include/net-snmp/library/file_utils.h
 file path=usr/include/net-snmp/library/getopt.h
 file path=usr/include/net-snmp/library/int64.h
 file path=usr/include/net-snmp/library/keytools.h
+file path=usr/include/net-snmp/library/large_fd_set.h
 file path=usr/include/net-snmp/library/lcd_time.h
 file path=usr/include/net-snmp/library/md5.h
 file path=usr/include/net-snmp/library/mib.h
 file path=usr/include/net-snmp/library/mt_support.h
+file path=usr/include/net-snmp/library/oid.h
 file path=usr/include/net-snmp/library/oid_stash.h
 file path=usr/include/net-snmp/library/parse.h
 file path=usr/include/net-snmp/library/read_config.h
@@ -335,10 +353,17 @@
 file path=usr/include/net-snmp/library/snmp_transport.h
 file path=usr/include/net-snmp/library/snmp-tc.h
 file path=usr/include/net-snmp/library/snmp.h
+file path=usr/include/net-snmp/library/snmpAliasDomain.h
 file path=usr/include/net-snmp/library/snmpCallbackDomain.h
+file path=usr/include/net-snmp/library/snmpIPv4BaseDomain.h
+file path=usr/include/net-snmp/library/snmpIPv6BaseDomain.h
+file path=usr/include/net-snmp/library/snmpSocketBaseDomain.h
+file path=usr/include/net-snmp/library/snmpTCPBaseDomain.h
 file path=usr/include/net-snmp/library/snmpTCPDomain.h
 file path=usr/include/net-snmp/library/snmpTCPIPv6Domain.h
+file path=usr/include/net-snmp/library/snmpUDPBaseDomain.h
 file path=usr/include/net-snmp/library/snmpUDPDomain.h
+file path=usr/include/net-snmp/library/snmpUDPIPv4BaseDomain.h
 file path=usr/include/net-snmp/library/snmpUDPIPv6Domain.h
 file path=usr/include/net-snmp/library/snmpUnixDomain.h
 file path=usr/include/net-snmp/library/snmpusm.h
@@ -348,6 +373,7 @@
 file path=usr/include/net-snmp/library/text_utils.h
 file path=usr/include/net-snmp/library/tools.h
 file path=usr/include/net-snmp/library/transform_oids.h
+file path=usr/include/net-snmp/library/types.h
 file path=usr/include/net-snmp/library/ucd_compat.h
 file path=usr/include/net-snmp/library/vacm.h
 file path=usr/include/net-snmp/library/winpipe.h
@@ -356,6 +382,7 @@
 file path=usr/include/net-snmp/mib_api.h
 file path=usr/include/net-snmp/net-snmp-config.h
 file path=usr/include/net-snmp/net-snmp-includes.h
+file path=usr/include/net-snmp/net-snmp-features.h
 file path=usr/include/net-snmp/output_api.h
 file path=usr/include/net-snmp/pdu_api.h
 file path=usr/include/net-snmp/session_api.h
@@ -370,6 +397,7 @@
 file path=usr/include/net-snmp/system/darwin7.h
 file path=usr/include/net-snmp/system/darwin8.h
 file path=usr/include/net-snmp/system/darwin9.h
+file path=usr/include/net-snmp/system/darwin10.h
 file path=usr/include/net-snmp/system/dragonfly.h
 file path=usr/include/net-snmp/system/dynix.h
 file path=usr/include/net-snmp/system/freebsd.h
@@ -378,6 +406,10 @@
 file path=usr/include/net-snmp/system/freebsd4.h
 file path=usr/include/net-snmp/system/freebsd5.h
 file path=usr/include/net-snmp/system/freebsd6.h
+file path=usr/include/net-snmp/system/freebsd7.h
+file path=usr/include/net-snmp/system/freebsd8.h
+file path=usr/include/net-snmp/system/freebsd9.h
+file path=usr/include/net-snmp/system/freebsd10.h
 file path=usr/include/net-snmp/system/generic.h
 file path=usr/include/net-snmp/system/hpux.h
 file path=usr/include/net-snmp/system/irix.h
@@ -386,6 +418,8 @@
 file path=usr/include/net-snmp/system/mips.h
 file path=usr/include/net-snmp/system/netbsd.h
 file path=usr/include/net-snmp/system/openbsd.h
+file path=usr/include/net-snmp/system/openbsd4.h
+file path=usr/include/net-snmp/system/openbsd5.h
 file path=usr/include/net-snmp/system/osf5.h
 file path=usr/include/net-snmp/system/solaris.h
 file path=usr/include/net-snmp/system/solaris2.3.h
@@ -442,18 +476,19 @@
 file path=usr/include/ucd-snmp/var_struct.h
 file path=usr/include/ucd-snmp/version.h
 file $(MACH64)/sun/agent/modules/entityMib/libentity.so path=usr/lib/$(MACH64)/libentity.so
-file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmp.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmp.so.15.1.0
-file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmpagent.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmpagent.so.15.1.0
-file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmphelpers.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmphelpers.so.15.1.0
-file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmpmibs.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmpmibs.so.15.1.0
-file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmptrapd.so.15.1.0 path=usr/lib/$(MACH64)/libnetsnmptrapd.so.15.1.0
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmp.so.30.0.2 path=usr/lib/$(MACH64)/libnetsnmp.so.30.0.2
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmpagent.so.30.0.2 path=usr/lib/$(MACH64)/libnetsnmpagent.so.30.0.2
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmphelpers.so.30.0.2 path=usr/lib/$(MACH64)/libnetsnmphelpers.so.30.0.2
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmpmibs.so.30.0.2 path=usr/lib/$(MACH64)/libnetsnmpmibs.so.30.0.2
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libnetsnmptrapd.so.30.0.2 path=usr/lib/$(MACH64)/libnetsnmptrapd.so.30.0.2
+file build/prototype/$(MACH64)/usr/lib/$(MACH64)/libsnmp.so.30.0.2 path=usr/lib/$(MACH64)/libsnmp.so.30.0.2
 file $(MACH32)/sun/agent/modules/entityMib/libentity.so path=usr/lib/libentity.so
-file path=usr/lib/libnetsnmp.so.15.1.0
-file path=usr/lib/libnetsnmpagent.so.15.1.0
-file path=usr/lib/libnetsnmphelpers.so.15.1.0
-file path=usr/lib/libnetsnmpmibs.so.15.1.0
-file path=usr/lib/libnetsnmptrapd.so.15.1.0
-file path=usr/lib/libsnmp.so.15.1.0
+file path=usr/lib/libnetsnmp.so.30.0.2
+file path=usr/lib/libnetsnmpagent.so.30.0.2
+file path=usr/lib/libnetsnmphelpers.so.30.0.2
+file path=usr/lib/libnetsnmpmibs.so.30.0.2
+file path=usr/lib/libnetsnmptrapd.so.30.0.2
+file path=usr/lib/libsnmp.so.30.0.2
 file $(MACH32)/sun/masfcnv path=usr/lib/net-snmp/masfcnv
 file $(MACH32)/sun/masfd path=usr/lib/net-snmp/masfd
 file path=usr/perl5/$(PERL_VERSION)/man/man3/NetSNMP::agent::default_store.3
@@ -505,28 +540,43 @@
 link path=usr/bin/net-snmp-config target=./net-snmp-config-32 variant.arch=i386
 link path=usr/bin/net-snmp-config target=./net-snmp-config-64 variant.arch=sparc
 link path=usr/bin/snmpinform target=snmptrap
-link path=usr/lib/$(MACH64)/libnetsnmp.so target=./libnetsnmp.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmp.so.15 target=./libnetsnmp.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmpagent.so target=./libnetsnmpagent.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmpagent.so.15 target=./libnetsnmpagent.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmphelpers.so target=./libnetsnmphelpers.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmphelpers.so.15 target=./libnetsnmphelpers.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmpmibs.so target=./libnetsnmpmibs.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmpmibs.so.15 target=./libnetsnmpmibs.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmptrapd.so target=./libnetsnmptrapd.so.15.1.0
-link path=usr/lib/$(MACH64)/libnetsnmptrapd.so.15 target=./libnetsnmptrapd.so.15.1.0
-link path=usr/lib/libnetsnmp.so target=./libnetsnmp.so.15.1.0
-link path=usr/lib/libnetsnmp.so.15 target=./libnetsnmp.so.15.1.0
-link path=usr/lib/libnetsnmpagent.so target=./libnetsnmpagent.so.15.1.0
-link path=usr/lib/libnetsnmpagent.so.15 target=./libnetsnmpagent.so.15.1.0
-link path=usr/lib/libnetsnmphelpers.so target=./libnetsnmphelpers.so.15.1.0
-link path=usr/lib/libnetsnmphelpers.so.15 target=./libnetsnmphelpers.so.15.1.0
-link path=usr/lib/libnetsnmpmibs.so target=./libnetsnmpmibs.so.15.1.0
-link path=usr/lib/libnetsnmpmibs.so.15 target=./libnetsnmpmibs.so.15.1.0
-link path=usr/lib/libnetsnmptrapd.so target=./libnetsnmptrapd.so.15.1.0
-link path=usr/lib/libnetsnmptrapd.so.15 target=./libnetsnmptrapd.so.15.1.0
-link path=usr/lib/libsnmp.so target=./libsnmp.so.15.1.0
-link path=usr/lib/libsnmp.so.15 target=./libsnmp.so.15.1.0
+link path=usr/lib/$(MACH64)/libnetsnmp.so target=./libnetsnmp.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmp.so.30 target=./libnetsnmp.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmpagent.so target=./libnetsnmpagent.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmpagent.so.30 target=./libnetsnmpagent.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmphelpers.so target=./libnetsnmphelpers.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmphelpers.so.30 target=./libnetsnmphelpers.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmpmibs.so target=./libnetsnmpmibs.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmpmibs.so.30 target=./libnetsnmpmibs.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmptrapd.so target=./libnetsnmptrapd.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmptrapd.so.30 target=./libnetsnmptrapd.so.30.0.2
+link path=usr/lib/$(MACH64)/libsnmp.so target=./libsnmp.so.30.0.2
+link path=usr/lib/$(MACH64)/libsnmp.so.30 target=./libsnmp.so.30.0.2
+link path=usr/lib/libnetsnmp.so target=./libnetsnmp.so.30.0.2
+link path=usr/lib/libnetsnmp.so.30 target=./libnetsnmp.so.30.0.2
+link path=usr/lib/libnetsnmpagent.so target=./libnetsnmpagent.so.30.0.2
+link path=usr/lib/libnetsnmpagent.so.30 target=./libnetsnmpagent.so.30.0.2
+link path=usr/lib/libnetsnmphelpers.so target=./libnetsnmphelpers.so.30.0.2
+link path=usr/lib/libnetsnmphelpers.so.30 target=./libnetsnmphelpers.so.30.0.2
+link path=usr/lib/libnetsnmpmibs.so target=./libnetsnmpmibs.so.30.0.2
+link path=usr/lib/libnetsnmpmibs.so.30 target=./libnetsnmpmibs.so.30.0.2
+link path=usr/lib/libnetsnmptrapd.so target=./libnetsnmptrapd.so.30.0.2
+link path=usr/lib/libnetsnmptrapd.so.30 target=./libnetsnmptrapd.so.30.0.2
+link path=usr/lib/libsnmp.so target=./libsnmp.so.30.0.2
+link path=usr/lib/libsnmp.so.30 target=./libsnmp.so.30.0.2
+
+link path=usr/lib/libnetsnmpagent.so.15 target=./libnetsnmpagent.so.30.0.2
+link path=usr/lib/libnetsnmp.so.15 target=./libnetsnmp.so.30.0.2
+link path=usr/lib/libnetsnmphelpers.so.15 target=./libnetsnmphelpers.so.30.0.2
+link path=usr/lib/libsnmp.so.15 target=./libsnmp.so.30.0.2
+link path=usr/lib/libnetsnmptrapd.so.15 target=./libnetsnmptrapd.so.30.0.2
+link path=usr/lib/libnetsnmpmibs.so.15 target=./libnetsnmpmibs.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmpagent.so.15 target=./libnetsnmpagent.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmp.so.15 target=./libnetsnmp.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmphelpers.so.15 target=./libnetsnmphelpers.so.30.0.2
+link path=usr/lib/$(MACH64)/libsnmp.so.15 target=./libsnmp.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmptrapd.so.15 target=./libnetsnmptrapd.so.30.0.2
+link path=usr/lib/$(MACH64)/libnetsnmpmibs.so.15 target=./libnetsnmpmibs.so.30.0.2
 
 depend fmri=library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
     predicate=runtime/python-26 \
@@ -534,4 +584,4 @@
 
 depend fmri=library/python-2/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
     predicate=runtime/python-27 \
-    type=conditional
+	    type=conditional
--- a/components/net-snmp/net-snmp-documentation.p5m	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/net-snmp-documentation.p5m	Tue May 14 22:57:32 2013 -0700
@@ -27,6 +27,7 @@
 set name=pkg.summary \
     value="Net-SNMP Agent manpages and html documentation files"
 set name=com.oracle.info.description value="the Net-SNMP agent manpages and html documentation files"
+set name=com.oracle.info.tpno value=13120
 set name=info.classification \
     value="org.opensolaris.category.2008:System/Enterprise Management"
 set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
@@ -221,6 +222,10 @@
     path=usr/share/doc/net-snmp/html/agent__registry_8c_source.html
 file build/$(MACH32)/docs/html/agent__registry_8h_source.html \
     path=usr/share/doc/net-snmp/html/agent__registry_8h_source.html
+file build/$(MACH32)/docs/html/agent__sysORTable_8c_source.html \
+    path=usr/share/doc/net-snmp/html/agent__sysORTable_8c_source.html
+file build/$(MACH32)/docs/html/agent__sysORTable_8h_source.html \
+    path=usr/share/doc/net-snmp/html/agent__sysORTable_8h_source.html
 file build/$(MACH32)/docs/html/agent__trap_8c_source.html \
     path=usr/share/doc/net-snmp/html/agent__trap_8c_source.html
 file build/$(MACH32)/docs/html/agent__trap_8h_source.html \
@@ -259,6 +264,12 @@
     path=usr/share/doc/net-snmp/html/callback_8c_source.html
 file build/$(MACH32)/docs/html/callback_8h_source.html \
     path=usr/share/doc/net-snmp/html/callback_8h_source.html
+file build/$(MACH32)/docs/html/cert__util_8c_source.html \
+    path=usr/share/doc/net-snmp/html/cert__util_8c_source.html
+file build/$(MACH32)/docs/html/cert__util_8h_source.html \
+    path=usr/share/doc/net-snmp/html/cert__util_8h_source.html
+file build/$(MACH32)/docs/html/closedir_8c_source.html \
+    path=usr/share/doc/net-snmp/html/closedir_8c_source.html
 file build/$(MACH32)/docs/html/check__varbind_8c_source.html \
     path=usr/share/doc/net-snmp/html/check__varbind_8c_source.html
 file build/$(MACH32)/docs/html/check__varbind_8h_source.html \
@@ -267,10 +278,6 @@
     path=usr/share/doc/net-snmp/html/classes.html
 file build/$(MACH32)/docs/html/closed.png \
     path=usr/share/doc/net-snmp/html/closed.png
-file build/$(MACH32)/docs/html/cmu__compat_8c_source.html \
-    path=usr/share/doc/net-snmp/html/cmu__compat_8c_source.html
-file build/$(MACH32)/docs/html/cmu__compat_8h_source.html \
-    path=usr/share/doc/net-snmp/html/cmu__compat_8h_source.html
 file build/$(MACH32)/docs/html/config__api_8h_source.html \
     path=usr/share/doc/net-snmp/html/config__api_8h_source.html
 file build/$(MACH32)/docs/html/container_8c_source.html \
@@ -323,6 +330,12 @@
     path=usr/share/doc/net-snmp/html/delayed_instance_8c-example.html
 file build/$(MACH32)/docs/html/deprecated.html \
     path=usr/share/doc/net-snmp/html/deprecated.html
+file build/$(MACH32)/docs/html/dir__utils_8c_source.html \
+    path=usr/share/doc/net-snmp/html/dir__utils_8c_source.html
+file build/$(MACH32)/docs/html/dir__utils_8h_source.html \
+    path=usr/share/doc/net-snmp/html/dir__utils_8h_source.html
+file build/$(MACH32)/docs/html/dummy_8c_source.html \
+    path=usr/share/doc/net-snmp/html/dummy_8c_source.html
 file build/$(MACH32)/docs/html/doxygen.css \
     path=usr/share/doc/net-snmp/html/doxygen.css
 file build/$(MACH32)/docs/html/doxygen.png \
@@ -355,6 +368,8 @@
     path=usr/share/doc/net-snmp/html/getopt_8c_source.html
 file build/$(MACH32)/docs/html/getopt_8h_source.html \
     path=usr/share/doc/net-snmp/html/getopt_8h_source.html
+file build/$(MACH32)/docs/html/gettimeofday_8c_source.html \
+    path=usr/share/doc/net-snmp/html/gettimeofday_8c_source.html
 file build/$(MACH32)/docs/html/globals.html \
     path=usr/share/doc/net-snmp/html/globals.html
 file build/$(MACH32)/docs/html/globals_defs.html \
@@ -367,6 +382,18 @@
     path=usr/share/doc/net-snmp/html/group__access__multiplexer.html
 file build/$(MACH32)/docs/html/group__agent.html \
     path=usr/share/doc/net-snmp/html/group__agent.html
+file build/$(MACH32)/docs/html/group__agent__context__cache.html \
+    path=usr/share/doc/net-snmp/html/group__agent__context__cache.html
+file build/$(MACH32)/docs/html/group__agent__lookup__cache.html \
+    path=usr/share/doc/net-snmp/html/group__agent__lookup__cache.html
+file build/$(MACH32)/docs/html/group__agent__mib__registering.html \
+    path=usr/share/doc/net-snmp/html/group__agent__mib__registering.html
+file build/$(MACH32)/docs/html/group__agent__mib__subtree.html \
+    path=usr/share/doc/net-snmp/html/group__agent__mib__subtree.html
+file build/$(MACH32)/docs/html/group__agent__signals.html \
+    path=usr/share/doc/net-snmp/html/group__agent__signals.html
+file build/$(MACH32)/docs/html/group__null__container.html \
+    path=usr/share/doc/net-snmp/html/group__null__container.html
 file build/$(MACH32)/docs/html/group__agent__registry.html \
     path=usr/share/doc/net-snmp/html/group__agent__registry.html
 file build/$(MACH32)/docs/html/group__agent__trap.html \
@@ -469,6 +496,12 @@
     path=usr/share/doc/net-snmp/html/index.html
 file build/$(MACH32)/docs/html/inet__ntop_8c_source.html \
     path=usr/share/doc/net-snmp/html/inet__ntop_8c_source.html
+file build/$(MACH32)/docs/html/inet__ntop_8h_source.html \
+    path=usr/share/doc/net-snmp/html/inet__ntop_8h_source.html
+file build/$(MACH32)/docs/html/inet__pton_8h_source.html \
+    path=usr/share/doc/net-snmp/html/inet__pton_8h_source.html
+file build/$(MACH32)/docs/html/int64_8c.html \
+    path=usr/share/doc/net-snmp/html/int64_8c.html
 file build/$(MACH32)/docs/html/inet__pton_8c_source.html \
     path=usr/share/doc/net-snmp/html/inet__pton_8c_source.html
 file build/$(MACH32)/docs/html/instance_8c_source.html \
@@ -481,6 +514,10 @@
     path=usr/share/doc/net-snmp/html/int64_8h_source.html
 file build/$(MACH32)/docs/html/jquery.js \
     path=usr/share/doc/net-snmp/html/jquery.js
+file build/$(MACH32)/docs/html/kernel_8c.html \
+    path=usr/share/doc/net-snmp/html/kernel_8c.html
+file build/$(MACH32)/docs/html/kernel_8h.html \
+    path=usr/share/doc/net-snmp/html/kernel_8h.html
 file build/$(MACH32)/docs/html/kernel_8c_source.html \
     path=usr/share/doc/net-snmp/html/kernel_8c_source.html
 file build/$(MACH32)/docs/html/kernel_8h_source.html \
@@ -489,6 +526,18 @@
     path=usr/share/doc/net-snmp/html/keytools_8c_source.html
 file build/$(MACH32)/docs/html/keytools_8h_source.html \
     path=usr/share/doc/net-snmp/html/keytools_8h_source.html
+file build/$(MACH32)/docs/html/large__fd__set_8c.html \
+    path=usr/share/doc/net-snmp/html/large__fd__set_8c.html
+file build/$(MACH32)/docs/html/large__fd__set_8c_source.html \
+    path=usr/share/doc/net-snmp/html/large__fd__set_8c_source.html
+file build/$(MACH32)/docs/html/large__fd__set_8h.html \
+    path=usr/share/doc/net-snmp/html/large__fd__set_8h.html
+file build/$(MACH32)/docs/html/large__fd__set_8h_source.html \
+    path=usr/share/doc/net-snmp/html/large__fd__set_8h_source.html
+file build/$(MACH32)/docs/html/library_2openssl__md5_8h_source.html \
+    path=usr/share/doc/net-snmp/html/library_2openssl__md5_8h_source.html
+file build/$(MACH32)/docs/html/library_2types_8h_source.html \
+    path=usr/share/doc/net-snmp/html/library_2types_8h_source.html
 file build/$(MACH32)/docs/html/lcd__time_8c_source.html \
     path=usr/share/doc/net-snmp/html/lcd__time_8c_source.html
 file build/$(MACH32)/docs/html/lcd__time_8h_source.html \
@@ -537,6 +586,8 @@
     path=usr/share/doc/net-snmp/html/net-snmp-agent-includes_8h_source.html
 file build/$(MACH32)/docs/html/net-snmp-config_8h_source.html \
     path=usr/share/doc/net-snmp/html/net-snmp-config_8h_source.html
+file build/$(MACH32)/docs/html/net-snmp-features_8h_source.html \
+    path=usr/share/doc/net-snmp/html/net-snmp-features_8h_source.html
 file build/$(MACH32)/docs/html/net-snmp-includes_8h_source.html \
     path=usr/share/doc/net-snmp/html/net-snmp-includes_8h_source.html
 file build/$(MACH32)/docs/html/netSnmpHostsTable_8c_source.html \
@@ -577,6 +628,18 @@
     path=usr/share/doc/net-snmp/html/oid__stash_8c_source.html
 file build/$(MACH32)/docs/html/oid__stash_8h_source.html \
     path=usr/share/doc/net-snmp/html/oid__stash_8h_source.html
+file build/$(MACH32)/docs/html/oid_8h_source.html \
+    path=usr/share/doc/net-snmp/html/oid_8h_source.html
+file build/$(MACH32)/docs/html/opendir_8c_source.html \
+    path=usr/share/doc/net-snmp/html/opendir_8c_source.html
+file build/$(MACH32)/docs/html/openssl__aes_8h_source.html \
+    path=usr/share/doc/net-snmp/html/openssl__aes_8h_source.html
+file build/$(MACH32)/docs/html/openssl__des_8h_source.html \
+    path=usr/share/doc/net-snmp/html/openssl__des_8h_source.html
+file build/$(MACH32)/docs/html/openssl__md5_8h_source.html \
+    path=usr/share/doc/net-snmp/html/openssl__md5_8h_source.html
+file build/$(MACH32)/docs/html/openssl__sha_8h_source.html \
+    path=usr/share/doc/net-snmp/html/openssl__sha_8h_source.html
 file build/$(MACH32)/docs/html/old__api_8c_source.html \
     path=usr/share/doc/net-snmp/html/old__api_8c_source.html
 file build/$(MACH32)/docs/html/old__api_8h_source.html \
@@ -595,6 +658,8 @@
     path=usr/share/doc/net-snmp/html/pdu__api_8h_source.html
 file build/$(MACH32)/docs/html/pkcs_8c_source.html \
     path=usr/share/doc/net-snmp/html/pkcs_8c_source.html
+file build/$(MACH32)/docs/html/readdir_8c_source.html \
+    path=usr/share/doc/net-snmp/html/readdir_8c_source.html
 file build/$(MACH32)/docs/html/read__config_8c_source.html \
     path=usr/share/doc/net-snmp/html/read__config_8c_source.html
 file build/$(MACH32)/docs/html/read__config_8h_source.html \
@@ -637,40 +702,62 @@
     path=usr/share/doc/net-snmp/html/snmp-tc_8c_source.html
 file build/$(MACH32)/docs/html/snmp-tc_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmp-tc_8h_source.html
-file build/$(MACH32)/docs/html/snmpAAL5PVCDomain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpAAL5PVCDomain_8c_source.html
+file build/$(MACH32)/docs/html/snmpAliasDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpAliasDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpDTLSUDPDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpDTLSUDPDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpIPv4BaseDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpIPv4BaseDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpIPv6BaseDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpIPv6BaseDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpSSHDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpSSHDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpSocketBaseDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpSocketBaseDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpTCPBaseDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpTCPBaseDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpTLSBaseDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpTLSBaseDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpTLSTCPDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpTLSTCPDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpUDPBaseDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpUDPBaseDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmpUDPIPv4BaseDomain_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpUDPIPv4BaseDomain_8h_source.html
+file build/$(MACH32)/docs/html/snmp__get__statistic_8c_source.html \
+    path=usr/share/doc/net-snmp/html/snmp__get__statistic_8c_source.html
+file build/$(MACH32)/docs/html/snmp__get__statistic_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmp__get__statistic_8h_source.html
+file build/$(MACH32)/docs/html/snmp__openssl_8c_source.html \
+    path=usr/share/doc/net-snmp/html/snmp__openssl_8c_source.html
+file build/$(MACH32)/docs/html/snmp__openssl_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmp__openssl_8h_source.html
+file build/$(MACH32)/docs/html/snmp__parse__args_8h.html \
+    path=usr/share/doc/net-snmp/html/snmp__parse__args_8h.html
+file build/$(MACH32)/docs/html/snmp__perl_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmp__perl_8h_source.html
+file build/$(MACH32)/docs/html/snmpsm__shutdown_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmpsm__shutdown_8h_source.html
+file build/$(MACH32)/docs/html/snmptsm_8c_source.html \
+    path=usr/share/doc/net-snmp/html/snmptsm_8c_source.html
+file build/$(MACH32)/docs/html/snmptsm_8h_source.html \
+    path=usr/share/doc/net-snmp/html/snmptsm_8h_source.html
 file build/$(MACH32)/docs/html/snmpAAL5PVCDomain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpAAL5PVCDomain_8h_source.html
-file build/$(MACH32)/docs/html/snmpCallbackDomain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpCallbackDomain_8c_source.html
 file build/$(MACH32)/docs/html/snmpCallbackDomain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpCallbackDomain_8h_source.html
-file build/$(MACH32)/docs/html/snmpIPXDomain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpIPXDomain_8c_source.html
 file build/$(MACH32)/docs/html/snmpIPXDomain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpIPXDomain_8h_source.html
-file build/$(MACH32)/docs/html/snmpSTDDomain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpSTDDomain_8c_source.html
 file build/$(MACH32)/docs/html/snmpSTDDomain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpSTDDomain_8h_source.html
-file build/$(MACH32)/docs/html/snmpTCPDomain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpTCPDomain_8c_source.html
 file build/$(MACH32)/docs/html/snmpTCPDomain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpTCPDomain_8h_source.html
-file build/$(MACH32)/docs/html/snmpTCPIPv6Domain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpTCPIPv6Domain_8c_source.html
 file build/$(MACH32)/docs/html/snmpTCPIPv6Domain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpTCPIPv6Domain_8h_source.html
-file build/$(MACH32)/docs/html/snmpUDPDomain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpUDPDomain_8c_source.html
 file build/$(MACH32)/docs/html/snmpUDPDomain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpUDPDomain_8h_source.html
-file build/$(MACH32)/docs/html/snmpUDPIPv6Domain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpUDPIPv6Domain_8c_source.html
 file build/$(MACH32)/docs/html/snmpUDPIPv6Domain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpUDPIPv6Domain_8h_source.html
-file build/$(MACH32)/docs/html/snmpUnixDomain_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmpUnixDomain_8c_source.html
 file build/$(MACH32)/docs/html/snmpUnixDomain_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpUnixDomain_8h_source.html
 file build/$(MACH32)/docs/html/snmp_8c_source.html \
@@ -743,10 +830,6 @@
     path=usr/share/doc/net-snmp/html/snmpksm_8c_source.html
 file build/$(MACH32)/docs/html/snmpksm_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpksm_8h_source.html
-file build/$(MACH32)/docs/html/snmplocalsm_8c_source.html \
-    path=usr/share/doc/net-snmp/html/snmplocalsm_8c_source.html
-file build/$(MACH32)/docs/html/snmplocalsm_8h_source.html \
-    path=usr/share/doc/net-snmp/html/snmplocalsm_8h_source.html
 file build/$(MACH32)/docs/html/snmpsm__init_8h_source.html \
     path=usr/share/doc/net-snmp/html/snmpsm__init_8h_source.html
 file build/$(MACH32)/docs/html/snmpusm_8c_source.html \
@@ -771,6 +854,12 @@
     path=usr/share/doc/net-snmp/html/stash__to__next_8c_source.html
 file build/$(MACH32)/docs/html/stash__to__next_8h_source.html \
     path=usr/share/doc/net-snmp/html/stash__to__next_8h_source.html
+file build/$(MACH32)/docs/html/strlcat_8c_source.html \
+    path=usr/share/doc/net-snmp/html/strlcat_8c_source.html
+file build/$(MACH32)/docs/html/strtoull_8c_source.html \
+    path=usr/share/doc/net-snmp/html/strtoull_8c_source.html
+file build/$(MACH32)/docs/html/sysORTable_8h_source.html \
+    path=usr/share/doc/net-snmp/html/sysORTable_8h_source.html
 file build/$(MACH32)/docs/html/strlcpy_8c_source.html \
     path=usr/share/doc/net-snmp/html/strlcpy_8c_source.html
 file build/$(MACH32)/docs/html/strtok__r_8c_source.html \
@@ -779,6 +868,52 @@
     path=usr/share/doc/net-snmp/html/strtol_8c_source.html
 file build/$(MACH32)/docs/html/strtoul_8c_source.html \
     path=usr/share/doc/net-snmp/html/strtoul_8c_source.html
+file build/$(MACH32)/docs/html/structDES__ks.html \
+    path=usr/share/doc/net-snmp/html/structDES__ks.html
+file build/$(MACH32)/docs/html/structMD5state__st.html \
+    path=usr/share/doc/net-snmp/html/structMD5state__st.html
+file build/$(MACH32)/docs/html/structSHA256state__st.html \
+    path=usr/share/doc/net-snmp/html/structSHA256state__st.html
+file build/$(MACH32)/docs/html/structSHA512state__st.html \
+    path=usr/share/doc/net-snmp/html/structSHA512state__st.html
+file build/$(MACH32)/docs/html/structSHAstate__st.html \
+    path=usr/share/doc/net-snmp/html/structSHAstate__st.html
+file build/$(MACH32)/docs/html/struct__dir__struc.html \
+    path=usr/share/doc/net-snmp/html/struct__dir__struc.html
+file build/$(MACH32)/docs/html/struct__netsnmpTLSBaseData__s.html \
+    path=usr/share/doc/net-snmp/html/struct__netsnmpTLSBaseData__s.html
+file build/$(MACH32)/docs/html/struct__netsnmp__verify__info__s.html \
+    path=usr/share/doc/net-snmp/html/struct__netsnmp__verify__info__s.html
+file build/$(MACH32)/docs/html/structaes__key__st.html \
+    path=usr/share/doc/net-snmp/html/structaes__key__st.html
+file build/$(MACH32)/docs/html/structdata__node__s.html \
+    path=usr/share/doc/net-snmp/html/structdata__node__s.html
+file build/$(MACH32)/docs/html/structdirect.html \
+    path=usr/share/doc/net-snmp/html/structdirect.html
+file build/$(MACH32)/docs/html/structnetsnmp__addr__pair__s.html \
+    path=usr/share/doc/net-snmp/html/structnetsnmp__addr__pair__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__indexed__addr__pair__s.html \
+    path=usr/share/doc/net-snmp/html/structnetsnmp__indexed__addr__pair__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__large__fd__set__s.html \
+    path=usr/share/doc/net-snmp/html/structnetsnmp__large__fd__set__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__state__machine__input__s.html \
+    path=usr/share/doc/net-snmp/html/structnetsnmp__state__machine__input__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__state__machine__step__s.html \
+    path=usr/share/doc/net-snmp/html/structnetsnmp__state__machine__step__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__tmStateReference__s.html \
+    path=usr/share/doc/net-snmp/html/structnetsnmp__tmStateReference__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__transport__config__s.html \
+    path=usr/share/doc/net-snmp/html/structnetsnmp__transport__config__s.html
+file build/$(MACH32)/docs/html/structnetsnmp__tsmSecurityReference__s.html \
+    path=usr/share/doc/net-snmp/html/structnetsnmp__tsmSecurityReference__s.html
+file build/$(MACH32)/docs/html/structregister__sysOR__parameters.html \
+    path=usr/share/doc/net-snmp/html/structregister__sysOR__parameters.html
+file build/$(MACH32)/docs/html/structrowcreate__state__s.html \
+    path=usr/share/doc/net-snmp/html/structrowcreate__state__s.html
+file build/$(MACH32)/docs/html/structssll__iterator__s.html \
+    path=usr/share/doc/net-snmp/html/structssll__iterator__s.html
+file build/$(MACH32)/docs/html/structsysORTable.html \
+    path=usr/share/doc/net-snmp/html/structsysORTable.html
 file build/$(MACH32)/docs/html/structMDstruct.html \
     path=usr/share/doc/net-snmp/html/structMDstruct.html
 file build/$(MACH32)/docs/html/struct__InputParams.html \
@@ -787,12 +922,6 @@
     path=usr/share/doc/net-snmp/html/struct__PrefixList.html
 file build/$(MACH32)/docs/html/struct__agent__nsap.html \
     path=usr/share/doc/net-snmp/html/struct__agent__nsap.html
-file build/$(MACH32)/docs/html/struct__com2SecEntry.html \
-    path=usr/share/doc/net-snmp/html/struct__com2SecEntry.html
-file build/$(MACH32)/docs/html/struct__com2SecUnixEntry.html \
-    path=usr/share/doc/net-snmp/html/struct__com2SecUnixEntry.html
-file build/$(MACH32)/docs/html/struct__sockaddr__un__pair.html \
-    path=usr/share/doc/net-snmp/html/struct__sockaddr__un__pair.html
 file build/$(MACH32)/docs/html/structaddrCache.html \
     path=usr/share/doc/net-snmp/html/structaddrCache.html
 file build/$(MACH32)/docs/html/structagent__add__trap__args.html \
@@ -811,16 +940,10 @@
     path=usr/share/doc/net-snmp/html/structconfig__files.html
 file build/$(MACH32)/docs/html/structconfig__line.html \
     path=usr/share/doc/net-snmp/html/structconfig__line.html
-file build/$(MACH32)/docs/html/structcontainer__table__data__s.html \
-    path=usr/share/doc/net-snmp/html/structcontainer__table__data__s.html
-file build/$(MACH32)/docs/html/structcontainer__type__s.html \
-    path=usr/share/doc/net-snmp/html/structcontainer__type__s.html
 file build/$(MACH32)/docs/html/structcounter64.html \
     path=usr/share/doc/net-snmp/html/structcounter64.html
 file build/$(MACH32)/docs/html/structdata__set__cache__s.html \
     path=usr/share/doc/net-snmp/html/structdata__set__cache__s.html
-file build/$(MACH32)/docs/html/structdata__set__tables__s.html \
-    path=usr/share/doc/net-snmp/html/structdata__set__tables__s.html
 file build/$(MACH32)/docs/html/structenginetime__struct.html \
     path=usr/share/doc/net-snmp/html/structenginetime__struct.html
 file build/$(MACH32)/docs/html/structenum__list.html \
@@ -829,42 +952,12 @@
     path=usr/share/doc/net-snmp/html/structget__req__state.html
 file build/$(MACH32)/docs/html/structindex__list.html \
     path=usr/share/doc/net-snmp/html/structindex__list.html
-file build/$(MACH32)/docs/html/structiterator__info__s.html \
-    path=usr/share/doc/net-snmp/html/structiterator__info__s.html
 file build/$(MACH32)/docs/html/structksm__cache__entry.html \
     path=usr/share/doc/net-snmp/html/structksm__cache__entry.html
 file build/$(MACH32)/docs/html/structksm__secStateRef.html \
     path=usr/share/doc/net-snmp/html/structksm__secStateRef.html
 file build/$(MACH32)/docs/html/structlookup__cache__context__s.html \
     path=usr/share/doc/net-snmp/html/structlookup__cache__context__s.html
-file build/$(MACH32)/docs/html/structlookup__cache__s.html \
-    path=usr/share/doc/net-snmp/html/structlookup__cache__s.html
-file build/$(MACH32)/docs/html/structmib__atEntry.html \
-    path=usr/share/doc/net-snmp/html/structmib__atEntry.html
-file build/$(MACH32)/docs/html/structmib__egp.html \
-    path=usr/share/doc/net-snmp/html/structmib__egp.html
-file build/$(MACH32)/docs/html/structmib__egpNeighEntry.html \
-    path=usr/share/doc/net-snmp/html/structmib__egpNeighEntry.html
-file build/$(MACH32)/docs/html/structmib__icmp.html \
-    path=usr/share/doc/net-snmp/html/structmib__icmp.html
-file build/$(MACH32)/docs/html/structmib__ifEntry.html \
-    path=usr/share/doc/net-snmp/html/structmib__ifEntry.html
-file build/$(MACH32)/docs/html/structmib__interface.html \
-    path=usr/share/doc/net-snmp/html/structmib__interface.html
-file build/$(MACH32)/docs/html/structmib__ip.html \
-    path=usr/share/doc/net-snmp/html/structmib__ip.html
-file build/$(MACH32)/docs/html/structmib__ipAddrEntry.html \
-    path=usr/share/doc/net-snmp/html/structmib__ipAddrEntry.html
-file build/$(MACH32)/docs/html/structmib__ipRouteEntry.html \
-    path=usr/share/doc/net-snmp/html/structmib__ipRouteEntry.html
-file build/$(MACH32)/docs/html/structmib__system.html \
-    path=usr/share/doc/net-snmp/html/structmib__system.html
-file build/$(MACH32)/docs/html/structmib__tcp.html \
-    path=usr/share/doc/net-snmp/html/structmib__tcp.html
-file build/$(MACH32)/docs/html/structmib__tcpConnEntry.html \
-    path=usr/share/doc/net-snmp/html/structmib__tcpConnEntry.html
-file build/$(MACH32)/docs/html/structmib__udp.html \
-    path=usr/share/doc/net-snmp/html/structmib__udp.html
 file build/$(MACH32)/docs/html/structmodule.html \
     path=usr/share/doc/net-snmp/html/structmodule.html
 file build/$(MACH32)/docs/html/structmodule__compatability.html \
@@ -941,8 +1034,6 @@
     path=usr/share/doc/net-snmp/html/structnetsnmp__monitor__callback__header__s.html
 file build/$(MACH32)/docs/html/structnetsnmp__monitor__callback__set__request__s.html \
     path=usr/share/doc/net-snmp/html/structnetsnmp__monitor__callback__set__request__s.html
-file build/$(MACH32)/docs/html/structnetsnmp__num__file__instance__s.html \
-    path=usr/share/doc/net-snmp/html/structnetsnmp__num__file__instance__s.html
 file build/$(MACH32)/docs/html/structnetsnmp__oid__stash__node__s.html \
     path=usr/share/doc/net-snmp/html/structnetsnmp__oid__stash__node__s.html
 file build/$(MACH32)/docs/html/structnetsnmp__oid__stash__save__info__s.html \
@@ -1001,16 +1092,12 @@
     path=usr/share/doc/net-snmp/html/structnetsnmp__transport__s.html
 file build/$(MACH32)/docs/html/structnetsnmp__tree__cache__s.html \
     path=usr/share/doc/net-snmp/html/structnetsnmp__tree__cache__s.html
-file build/$(MACH32)/docs/html/structnetsnmp__udp__addr__pair__s.html \
-    path=usr/share/doc/net-snmp/html/structnetsnmp__udp__addr__pair__s.html
 file build/$(MACH32)/docs/html/structnetsnmp__void__array__s.html \
     path=usr/share/doc/net-snmp/html/structnetsnmp__void__array__s.html
 file build/$(MACH32)/docs/html/structnetsnmp__watcher__info__s.html \
     path=usr/share/doc/net-snmp/html/structnetsnmp__watcher__info__s.html
 file build/$(MACH32)/docs/html/structnewrow__stash__s.html \
     path=usr/share/doc/net-snmp/html/structnewrow__stash__s.html
-file build/$(MACH32)/docs/html/structnode.html \
-    path=usr/share/doc/net-snmp/html/structnode.html
 file build/$(MACH32)/docs/html/structobjgroup.html \
     path=usr/share/doc/net-snmp/html/structobjgroup.html
 file build/$(MACH32)/docs/html/structold__opi__cache__s.html \
@@ -1027,18 +1114,12 @@
     path=usr/share/doc/net-snmp/html/structsession__list.html
 file build/$(MACH32)/docs/html/structsl__container__s.html \
     path=usr/share/doc/net-snmp/html/structsl__container__s.html
-file build/$(MACH32)/docs/html/structsl__node.html \
-    path=usr/share/doc/net-snmp/html/structsl__node.html
 file build/$(MACH32)/docs/html/structsnmp__alarm.html \
     path=usr/share/doc/net-snmp/html/structsnmp__alarm.html
 file build/$(MACH32)/docs/html/structsnmp__enum__list.html \
     path=usr/share/doc/net-snmp/html/structsnmp__enum__list.html
-file build/$(MACH32)/docs/html/structsnmp__enum__list__str.html \
-    path=usr/share/doc/net-snmp/html/structsnmp__enum__list__str.html
 file build/$(MACH32)/docs/html/structsnmp__gen__callback.html \
     path=usr/share/doc/net-snmp/html/structsnmp__gen__callback.html
-file build/$(MACH32)/docs/html/structsnmp__index.html \
-    path=usr/share/doc/net-snmp/html/structsnmp__index.html
 file build/$(MACH32)/docs/html/structsnmp__internal__session.html \
     path=usr/share/doc/net-snmp/html/structsnmp__internal__session.html
 file build/$(MACH32)/docs/html/structsnmp__log__message.html \
@@ -1069,12 +1150,8 @@
     path=usr/share/doc/net-snmp/html/structti__cache__info__s.html
 file build/$(MACH32)/docs/html/structtok.html \
     path=usr/share/doc/net-snmp/html/structtok.html
-file build/$(MACH32)/docs/html/structtrap__sink.html \
-    path=usr/share/doc/net-snmp/html/structtrap__sink.html
 file build/$(MACH32)/docs/html/structtree.html \
     path=usr/share/doc/net-snmp/html/structtree.html
-file build/$(MACH32)/docs/html/structundoInfo.html \
-    path=usr/share/doc/net-snmp/html/structundoInfo.html
 file build/$(MACH32)/docs/html/structusmStateReference.html \
     path=usr/share/doc/net-snmp/html/structusmStateReference.html
 file build/$(MACH32)/docs/html/structusmUser.html \
@@ -1155,8 +1232,6 @@
     path=usr/share/doc/net-snmp/html/table__tdata_8h_source.html
 file build/$(MACH32)/docs/html/tabs.css \
     path=usr/share/doc/net-snmp/html/tabs.css
-file build/$(MACH32)/docs/html/test__binary__array_8c_source.html \
-    path=usr/share/doc/net-snmp/html/test__binary__array_8c_source.html
 file build/$(MACH32)/docs/html/text__utils_8c_source.html \
     path=usr/share/doc/net-snmp/html/text__utils_8c_source.html
 file build/$(MACH32)/docs/html/text__utils_8h_source.html \
@@ -1173,6 +1248,10 @@
     path=usr/share/doc/net-snmp/html/transform__oids_8h_source.html
 file build/$(MACH32)/docs/html/types_8h_source.html \
     path=usr/share/doc/net-snmp/html/types_8h_source.html
+file build/$(MACH32)/docs/html/testing_8h_source.html \
+    path=usr/share/doc/net-snmp/html/testing_8h_source.html
+file build/$(MACH32)/docs/html/unionnetsnmp__sockaddr__storage__u.html \
+    path=usr/share/doc/net-snmp/html/unionnetsnmp__sockaddr__storage__u.html
 file build/$(MACH32)/docs/html/ucd-snmp-includes_8h_source.html \
     path=usr/share/doc/net-snmp/html/ucd-snmp-includes_8h_source.html
 file build/$(MACH32)/docs/html/ucdDemoPublic_8c_source.html \
@@ -1217,11 +1296,14 @@
     path=usr/share/doc/net-snmp/html/winservice_8c_source.html
 file build/$(MACH32)/docs/html/winservice_8h_source.html \
     path=usr/share/doc/net-snmp/html/winservice_8h_source.html
+file path=usr/share/man/man1/agentxtrap.1
 file path=usr/share/man/man1/encode_keychange.1
 file path=usr/share/man/man1/fixproc.1
 file path=usr/share/man/man1/mib2c-update.1
 file path=usr/share/man/man1/mib2c.1
 file path=usr/share/man/man1/net-snmp-config.1
+file path=usr/share/man/man1/net-snmp-create-v3-user.1
+file path=usr/share/man/man1/snmp-bridge-mib.1
 file path=usr/share/man/man1/snmpbulkget.1
 file path=usr/share/man/man1/snmpbulkwalk.1
 file path=usr/share/man/man1/snmpcmd.1
@@ -1252,88 +1334,58 @@
 file path=usr/share/man/man3/fprint_value.3
 file path=usr/share/man/man3/fprint_variable.3
 file path=usr/share/man/man3/get_module_node.3
-file path=usr/share/man/man3/init_mib.3
-file path=usr/share/man/man3/init_mib_internals.3
-file path=usr/share/man/man3/mib_api.3
-file path=usr/share/man/man3/netsnmp_Container_iterator.3
-file path=usr/share/man/man3/netsnmp_agent.3
-file path=usr/share/man/man3/netsnmp_baby_steps.3
-file path=usr/share/man/man3/netsnmp_bulk_to_next.3
-file path=usr/share/man/man3/netsnmp_cache_handler.3
-file path=usr/share/man/man3/netsnmp_container.3
-file path=usr/share/man/man3/netsnmp_debug.3
-file path=usr/share/man/man3/netsnmp_ds_get_boolean.3
-file path=usr/share/man/man3/netsnmp_ds_get_int.3
-file path=usr/share/man/man3/netsnmp_ds_get_string.3
-file path=usr/share/man/man3/netsnmp_ds_register_config.3
-file path=usr/share/man/man3/netsnmp_ds_register_premib.3
-file path=usr/share/man/man3/netsnmp_ds_set_boolean.3
-file path=usr/share/man/man3/netsnmp_ds_set_int.3
-file path=usr/share/man/man3/netsnmp_ds_set_string.3
-file path=usr/share/man/man3/netsnmp_ds_shutdown.3
-file path=usr/share/man/man3/netsnmp_example_scalar_int.3
-file path=usr/share/man/man3/netsnmp_handler.3
-file path=usr/share/man/man3/netsnmp_instance.3
-file path=usr/share/man/man3/netsnmp_iterator_info_s.3
-file path=usr/share/man/man3/netsnmp_leaf.3
-file path=usr/share/man/man3/netsnmp_library.3
-file path=usr/share/man/man3/netsnmp_mib_handler_methods.3
-file path=usr/share/man/man3/netsnmp_mib_utilities.3
-file path=usr/share/man/man3/netsnmp_mode_end_call.3
-file path=usr/share/man/man3/netsnmp_multiplexer.3
-file path=usr/share/man/man3/netsnmp_old_api.3
-file path=usr/share/man/man3/netsnmp_read_only.3
-file path=usr/share/man/man3/netsnmp_row_merge.3
-file path=usr/share/man/man3/netsnmp_scalar.3
-file path=usr/share/man/man3/netsnmp_scalar_group_group.3
-file path=usr/share/man/man3/netsnmp_serialize.3
-file path=usr/share/man/man3/netsnmp_stash_cache.3
-file path=usr/share/man/man3/netsnmp_table.3
-file path=usr/share/man/man3/netsnmp_table_array.3
-file path=usr/share/man/man3/netsnmp_table_data.3
-file path=usr/share/man/man3/netsnmp_table_dataset.3
-file path=usr/share/man/man3/netsnmp_table_iterator.3
-file path=usr/share/man/man3/netsnmp_utilities.3
-file path=usr/share/man/man3/netsnmp_watcher.3
+file path=usr/share/man/man3/netsnmp_agent_api.3
+file path=usr/share/man/man3/netsnmp_config_api.3
+file path=usr/share/man/man3/netsnmp_init_mib.3
+file path=usr/share/man/man3/netsnmp_mib_api.3
+file path=usr/share/man/man3/netsnmp_pdu_api.3
+file path=usr/share/man/man3/netsnmp_read_module.3
+file path=usr/share/man/man3/netsnmp_sess_api.3
+file path=usr/share/man/man3/netsnmp_session_api.3
+file path=usr/share/man/man3/netsnmp_trap_api.3
+file path=usr/share/man/man3/netsnmp_varbind_api.3
 file path=usr/share/man/man3/print_description.3
 file path=usr/share/man/man3/print_mib.3
 file path=usr/share/man/man3/print_objid.3
 file path=usr/share/man/man3/print_value.3
 file path=usr/share/man/man3/print_variable.3
 file path=usr/share/man/man3/read_all_mibs.3
-file path=usr/share/man/man3/read_config.3
 file path=usr/share/man/man3/read_config_print_usage.3
 file path=usr/share/man/man3/read_configs.3
 file path=usr/share/man/man3/read_mib.3
-file path=usr/share/man/man3/read_module.3
-file path=usr/share/man/man3/read_module_node.3
 file path=usr/share/man/man3/read_objid.3
 file path=usr/share/man/man3/read_premib_configs.3
 file path=usr/share/man/man3/register_app_config_handler.3
-file path=usr/share/man/man3/register_app_premib_handler.3
+file path=usr/share/man/man3/register_app_prenetsnmp_mib_handler.3
 file path=usr/share/man/man3/register_config_handler.3
+file path=usr/share/man/man3/register_const_config_handler.3
 file path=usr/share/man/man3/register_mib_handlers.3
-file path=usr/share/man/man3/register_premib_handler.3
+file path=usr/share/man/man3/register_prenetsnmp_mib_handler.3
 file path=usr/share/man/man3/send_easy_trap.3
 file path=usr/share/man/man3/send_trap_vars.3
 file path=usr/share/man/man3/send_v2trap.3
 file path=usr/share/man/man3/shutdown_mib.3
-file path=usr/share/man/man3/snmp_agent_api.3
+file path=usr/share/man/man3/snmp_add_null_var.3
 file path=usr/share/man/man3/snmp_alarm.3
 file path=usr/share/man/man3/snmp_alarm_register.3
 file path=usr/share/man/man3/snmp_alarm_register_hr.3
 file path=usr/share/man/man3/snmp_alarm_unregister.3
-file path=usr/share/man/man3/snmp_api.3
 file path=usr/share/man/man3/snmp_api_errstring.3
 file path=usr/share/man/man3/snmp_close.3
+file path=usr/share/man/man3/snmp_clone_pdu.3
 file path=usr/share/man/man3/snmp_error.3
+file path=usr/share/man/man3/snmp_fix_pdu.3
 file path=usr/share/man/man3/snmp_free_pdu.3
+file path=usr/share/man/man3/snmp_free_var.3
+file path=usr/share/man/man3/snmp_free_varbind.3
 file path=usr/share/man/man3/snmp_open.3
+file path=usr/share/man/man3/snmp_parse_oid.3
 file path=usr/share/man/man3/snmp_perror.3
+file path=usr/share/man/man3/snmp_pdu_add_variable.3
+file path=usr/share/man/man3/snmp_pdu_create.3
 file path=usr/share/man/man3/snmp_read.3
 file path=usr/share/man/man3/snmp_select_info.3
 file path=usr/share/man/man3/snmp_send.3
-file path=usr/share/man/man3/snmp_sess_api.3
 file path=usr/share/man/man3/snmp_sess_async_send.3
 file path=usr/share/man/man3/snmp_sess_close.3
 file path=usr/share/man/man3/snmp_sess_error.3
@@ -1345,16 +1397,20 @@
 file path=usr/share/man/man3/snmp_sess_send.3
 file path=usr/share/man/man3/snmp_sess_session.3
 file path=usr/share/man/man3/snmp_sess_timeout.3
+file path=usr/share/man/man3/snmp_set_mib_errors.3
 file path=usr/share/man/man3/snmp_set_mib_warnings.3
 file path=usr/share/man/man3/snmp_set_save_descriptions.3
+file path=usr/share/man/man3/snmp_set_var_objid.3
+file path=usr/share/man/man3/snmp_set_var_typed_integer.3
+file path=usr/share/man/man3/snmp_set_var_typed_value.3
+file path=usr/share/man/man3/snmp_set_var_value.3
 file path=usr/share/man/man3/snmp_timeout.3
-file path=usr/share/man/man3/snmp_trap_api.3
+file path=usr/share/man/man3/snmp_varlist_add_variable.3
+file path=usr/share/man/man3/snprint_description.3
 file path=usr/share/man/man3/snprint_objid.3
 file path=usr/share/man/man3/snprint_value.3
 file path=usr/share/man/man3/snprint_variable.3
-file path=usr/share/man/man3/sprint_realloc_objid.3
-file path=usr/share/man/man3/sprint_realloc_value.3
-file path=usr/share/man/man3/sprint_realloc_variable.3
+file path=usr/share/man/man3/unregister_all_config_handlers.3
 file path=usr/share/man/man3/unregister_app_config_handler.3
 file path=usr/share/man/man3/unregister_config_handler.3
 file path=usr/share/man/man5/mib2c.conf.5
--- a/components/net-snmp/patches/001.scapi.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
---- net-snmp-5.4.1/snmplib/scapi.c	Fri Sep 15 05:47:01 2006
-+++ net-snmp-5.4.1.mod/snmplib/scapi.c	Sat Jul  4 02:58:34 2009
[email protected]@ -406,11 +406,11 @@
-     int            rval = SNMPERR_SUCCESS;
- #endif
-     int            ret;
-+    unsigned int   tmp_len;
- 
- #ifdef NETSNMP_USE_OPENSSL
-     const EVP_MD   *hashfn;
-     EVP_MD_CTX     ctx, *cptr;
--    unsigned int   tmp_len;
- #endif
- 
-     DEBUGTRACE;
[email protected]@ -479,13 +479,11 @@
- 
- #ifndef NETSNMP_DISABLE_MD5
-     if (ISTRANSFORM(hashtype, HMACMD5Auth)) {
--	rval = pkcs_digest(CKM_MD5, buf, buf_len, MAC, &tmp_len);
--        *MAC_len = tmp_len;
-+	rval = pkcs_digest(CKM_MD5, buf, buf_len, MAC, MAC_len);
-     } else
- #endif
-         if (ISTRANSFORM(hashtype, HMACSHA1Auth)) {
--	rval = pkcs_digest(CKM_SHA_1, buf, buf_len, MAC, &tmp_len);
--        *MAC_len = tmp_len;
-+	rval = pkcs_digest(CKM_SHA_1, buf, buf_len, MAC, MAC_len);
-     } else {
-         return (SNMPERR_GENERR);
-     }
--- a/components/net-snmp/patches/003.solaris-ip-mib.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,491 +0,0 @@
---- net-snmp-5.4.1/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c	(revision 0)
-+++ net-snmp-5.4.1-patch/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c	(revision 0)
[email protected]@ -0,0 +1,199 @@
-+#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 ((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;
-+    bzero((void *)&iptot, 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)
-+{
-+    netsnmp_systemstats_entry *ep =
-+        netsnmp_access_systemstats_entry_create(ipe->ipIfStatsIPVersion); 
-+
-+    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.OutNoRoutes = ipe->ipIfStatsOutNoRoutes; 
-+    ep->stats.HCOutForwDatagrams.low = 
-+        ipe->ipIfStatsHCOutForwDatagrams & 0xffffffff;
-+    ep->stats.HCOutForwDatagrams.high = 
-+        ipe->ipIfStatsHCOutForwDatagrams >> 32;
-+    ep->stats.OutDiscards = ipe->ipIfStatsOutDiscards; 
-+    ep->stats.OutFragOKs = ipe->ipIfStatsOutFragOKs; 
-+    ep->stats.OutFragFails = ipe->ipIfStatsOutFragFails; 
-+    ep->stats.OutFragCreates = ipe->ipIfStatsOutFragCreates; 
-+    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;
-+
-+    if (CONTAINER_INSERT(container, ep) < 0) {
-+        DEBUGMSGT(("access:systemstats:arch", "unable to insert entry")); 
-+        netsnmp_access_systemstats_entry_free(ep); 
-+        return (-1);
-+    }
-+    return (0);
-+}
---- net-snmp-5.4.1/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c	(revision 0)
-+++ net-snmp-5.4.1-patch/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c	(revision 0)
[email protected]@ -0,0 +1,286 @@
-+/*
-+ *  IP-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/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"
-+
-+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.
-+     */
-+}
-+
-+/*
-+ * copy arch specific storage
-+ */
-+int
-+netsnmp_arch_ipaddress_entry_copy(netsnmp_ipaddress_entry *lhs,
-+                                  netsnmp_ipaddress_entry *rhs)
-+{
-+    /*
-+     * Nothing to do. 
-+     */
-+    return 0;
-+}
-+
-+/*
-+ * 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));
-+            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 %d, 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 (bcmp((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 %d, 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 ) */
--- a/components/net-snmp/patches/004.16436.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-Index: net-snmp/include/net-snmp/system/solaris.h
-===================================================================
---- net-snmp/include/net-snmp/system/solaris.h	(revision 16435)
-+++ net-snmp/include/net-snmp/system/solaris.h	(revision 16436)
[email protected]@ -38,3 +38,10 @@
- 
- /* Solaris 7+ */
- #define NETSNMP_DONT_USE_NLIST 1
-+
-+/*
-+ * 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
-Index: net-snmp/configure.in
-===================================================================
---- net-snmp/configure.in	(revision 16435)
-+++ net-snmp/configure.in	(revision 16436)
[email protected]@ -1339,8 +1339,9 @@
- AC_CHECK_TYPES([off64_t])
- AC_CHECK_TYPES([uintptr_t, intptr_t])
- 
--# solaris specific type
-+# solaris specific types
- AC_CHECK_TYPES([Counter64],,,[#include <inet/mib2.h>])
-+AC_CHECK_TYPES([mib2_ipIfStatsEntry_t],,,[#include <inet/mib2.h>])
- 
- # guess IPv6 stack type.
- if test "x$enable_ipv6" = "xyes"; then
-Index: net-snmp/agent/mibgroup/kernel_sunos5.h
-===================================================================
---- net-snmp/agent/mibgroup/kernel_sunos5.h	(revision 16435)
-+++ net-snmp/agent/mibgroup/kernel_sunos5.h	(revision 16436)
[email protected]@ -71,7 +71,11 @@
-     MIB_TRANSMISSION = 14,
-     MIB_SNMP = 15,
- #ifdef SOLARIS_HAVE_IPV6_MIB_SUPPORT
--    MIB_IP6_ADDR = 16,
-+#ifdef SOLARIS_HAVE_RFC4293_SUPPORT
-+    MIB_IP_TRAFFIC_STATS,
-+#endif
-+    MIB_IP6,
-+    MIB_IP6_ADDR,
-     MIB_TCP6_CONN,
-     MIB_UDP6_ENDPOINT,
- #endif
-Index: net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c
-===================================================================
---- net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c	(revision 16435)
-+++ net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c	(revision 16436)
[email protected]@ -3,9 +3,9 @@
-  */
- #include <net-snmp/net-snmp-config.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>
- 
-Index: net-snmp/agent/mibgroup/ip-mib/data_access/ipaddress.h
-===================================================================
---- net-snmp/agent/mibgroup/ip-mib/data_access/ipaddress.h	(revision 16435)
-+++ net-snmp/agent/mibgroup/ip-mib/data_access/ipaddress.h	(revision 16436)
[email protected]@ -20,6 +20,8 @@
- 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.)
- #endif
-Index: net-snmp/agent/mibgroup/ip-mib/data_access/systemstats.h
-===================================================================
---- net-snmp/agent/mibgroup/ip-mib/data_access/systemstats.h	(revision 16435)
-+++ net-snmp/agent/mibgroup/ip-mib/data_access/systemstats.h	(revision 16436)
[email protected]@ -20,6 +20,8 @@
- 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.)
- #endif
-Index: net-snmp/agent/mibgroup/mibII.h
-===================================================================
---- net-snmp/agent/mibgroup/mibII.h	(revision 16435)
-+++ net-snmp/agent/mibgroup/mibII.h	(revision 16436)
[email protected]@ -30,3 +30,10 @@
- #if defined( linux )
- config_require(ip-mib ip-forward-mib 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
-Index: net-snmp/agent/mibgroup/kernel_sunos5.c
-===================================================================
---- net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16435)
-+++ net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16436)
[email protected]@ -45,6 +45,7 @@
- #include <kstat.h>
- #include <errno.h>
- #include <time.h>
-+#include <ctype.h>
- 
- #include <sys/sockio.h>
- #include <sys/socket.h>
[email protected]@ -103,6 +104,13 @@
-     {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},
[email protected]@ -131,6 +139,10 @@
-     {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},
[email protected]@ -343,7 +355,8 @@
-     kstat_ctl_t    *ksc;
-     kstat_t        *ks, *kstat_data;
-     kstat_named_t  *d;
--    size_t          i, instance;
-+    uint_t          i;
-+    int             instance;
-     char            module_name[64];
-     int             ret;
-     u_longlong_t    val;    /* The largest value */
[email protected]@ -900,7 +913,11 @@
-     req = (struct opthdr *)(tor + 1);
-     req->level = groupname;
-     req->name = subgroupname;
-+#if defined( SOLARIS_HAVE_RFC4293_SUPPORT )
-+    req->len = 1; /* Used as a flag for S10 to grab extra data */
-+#else
-     req->len = 0;
-+#endif
-     strbuf.len = tor->OPT_length + tor->OPT_offset;
-     flags = 0;
-     if ((rc = putmsg(sd, &strbuf, NULL, flags))) {
--- a/components/net-snmp/patches/005.16736.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,759 +0,0 @@
-Index: net-snmp/agent/mibgroup/kernel_sunos5.h
-===================================================================
---- net-snmp/agent/mibgroup/kernel_sunos5.h	(revision 16735)
-+++ net-snmp/agent/mibgroup/kernel_sunos5.h	(revision 16736)
[email protected]@ -193,6 +193,8 @@
-     int             getKstatString(const char *statname, const char *varname,
-                                    char *value, size_t value_len);
- 
-+    int             solaris2_if_nametoindex(const char *, int);
-+
- #ifdef _STDC_COMPAT
- #ifdef __cplusplus
- }
-Index: net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c
-===================================================================
---- net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c	(revision 16735)
-+++ net-snmp/agent/mibgroup/if-mib/data_access/interface_solaris2.c	(revision 16736)
[email protected]@ -14,6 +14,7 @@
- #include <sys/ioctl.h>
- #include <sys/sockio.h>
- #include <strings.h>
-+#include <string.h>
- 
- static int _set_ip_flags_v4(netsnmp_interface_entry *, mib2_ifEntry_t *);
- static int _match_ifname_v4addr(void *ifname, void *ipaddr);
[email protected]@ -43,25 +44,7 @@
- #if defined(HAVE_IF_NAMETOINDEX)
-     return if_nametoindex(name);
- #else /* use GIFINDEX */
--    int             sd;
--    struct ifreq    ifr;
--
--    if (name == 0) {
--        return (0);
--    }
--
--    if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
--        return (0);
--    }
--
--    strncpy(ifr.ifr_name, name, IFNAMSIZ);
--    if (ioctl(sd, SIOCGIFINDEX, (char *) &ifr) < 0) {
--        close(sd);
--        return (0);
--    }
--
--    close(sd);
--    return (ifr.ifr_index);
-+    return solaris2_if_nametoindex(name, strlen(name));
- #endif /* defined(HAVE_IF_NAMETOINDEX) */
- }
- 
-Index: net-snmp/agent/mibgroup/mibII/interfaces.c
-===================================================================
---- net-snmp/agent/mibgroup/mibII/interfaces.c	(revision 16735)
-+++ net-snmp/agent/mibgroup/mibII/interfaces.c	(revision 16736)
[email protected]@ -2245,71 +2245,7 @@
- int
- Interface_Index_By_Name(char *Name, int Len)
- {
--    int             i, sd, lastlen = 0, interfaces = 0;
--    struct ifconf   ifc;
--    struct ifreq   *ifrp = NULL;
--    char           *buf = NULL;
--
--    if (Name == 0) {
--        return 0;
--    }
--    if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
--        return 0;
--    }
--
--    /*
--     * Cope with lots of interfaces and brokenness of ioctl SIOCGIFCONF
--     * on some platforms; see W. R. Stevens, ``Unix Network Programming
--     * Volume I'', p.435.  
--     */
--
--    for (i = 8;; i += 8) {
--        buf = calloc(i, sizeof(struct ifreq));
--        if (buf == NULL) {
--            close(sd);
--            return 0;
--        }
--        ifc.ifc_len = i * sizeof(struct ifreq);
--        ifc.ifc_buf = (caddr_t) buf;
--
--        if (ioctl(sd, SIOCGIFCONF, (char *) &ifc) < 0) {
--            if (errno != EINVAL || lastlen != 0) {
--                /*
--                 * Something has gone genuinely wrong.  
--                 */
--                free(buf);
--                close(sd);
--                return 0;
--            }
--            /*
--             * Otherwise, it could just be that the buffer is too small.  
--             */
--        } else {
--            if (ifc.ifc_len == lastlen) {
--                /*
--                 * The length is the same as the last time; we're done.  
--                 */
--                break;
--            }
--            lastlen = ifc.ifc_len;
--        }
--        free(buf);
--    }
--
--    ifrp = ifc.ifc_req;
--    interfaces = (ifc.ifc_len / sizeof(struct ifreq)) + 1;
--
--    for (i = 1; i < interfaces; i++, ifrp++) {
--        if (strncmp(ifrp->ifr_name, Name, Len) == 0) {
--            free(buf);
--            close(sd);
--            return i;
--        }
--    }
--
--    free(buf);
--    close(sd);
--    return 0;
-+    return (solaris2_if_nametoindex(Name, Len));
- }
- 
- #endif                          /* solaris2 */
-Index: net-snmp/agent/mibgroup/kernel_sunos5.c
-===================================================================
---- net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16735)
-+++ net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16736)
[email protected]@ -169,11 +169,14 @@
- getif(mib2_ifEntry_t *ifbuf, size_t size, req_e req_type, mib2_ifEntry_t *resp,
-       size_t *length, int (*comp)(void *, void *), void *arg);
- static void 
--set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,int mtu);
-+set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,
-+            int mtu);
- static int get_if_stats(mib2_ifEntry_t *ifp);
- 
--static int get_phys_address(mib2_ifEntry_t *ifp);
--static int _dlpi_phys_address(int fd, char *paddr, int maxlen, int *paddrlen);
-+static int _dlpi_open(const char *devname);
-+static int _dlpi_get_phys_address(int fd, char *paddr, int maxlen,
-+                                  int *paddrlen);
-+static int _dlpi_get_iftype(int fd, unsigned int *iftype);
- static int _dlpi_attach(int fd, int ppa);
- static int _dlpi_parse_devname(char *devname, int *ppap);
- 
[email protected]@ -1047,7 +1050,7 @@
-       mib2_ifEntry_t *resp,  size_t *length, int (*comp)(void *, void *),
-       void *arg)
- {
--    int             i, ret;
-+    int             fd, i, ret;
-     int             ifsd, ifsd6 = -1;
-     struct lifreq   lifreq, *lifrp;
-     mib2_ifEntry_t *ifp;
[email protected]@ -1109,6 +1112,15 @@
- 
-         memset(ifp, 0, sizeof(mib2_ifEntry_t));
- 
-+        if ((fd = _dlpi_open(ifnp->if_name)) != -1) {
-+            /* Could open DLPI... now try to grab some info */
-+            (void) _dlpi_get_phys_address(fd, ifp->ifPhysAddress.o_bytes,
-+                                sizeof(ifp->ifPhysAddress.o_bytes),
-+                                &ifp->ifPhysAddress.o_length);
-+            (void) _dlpi_get_iftype(fd, &ifp->ifType);
-+            close(fd);
-+        }
-+
-         set_if_info(ifp, ifnp->if_index, ifnp->if_name, if_flags, 
-                     lifrp->lifr_metric);
- 
[email protected]@ -1117,9 +1129,6 @@
-             continue;
-         }
- 
--        /* try to obtain the physical address */
--        (void) get_phys_address(ifp);
--
-         /*
-          * Once we reach here we know that all went well, so move to
-          * the next ifEntry. 
[email protected]@ -1294,8 +1303,11 @@
- #endif /*defined(HAVE_IF_NAMEINDEX)&&defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)*/
- 
- static void
--set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags, int mtu)
-+set_if_info(mib2_ifEntry_t *ifp, unsigned index, char *name, uint64_t flags,
-+            int mtu)
- { 
-+    boolean_t havespeed = B_FALSE;
-+
-     /*
-      * Set basic information 
-      */
[email protected]@ -1307,101 +1319,122 @@
-     ifp->ifLastChange = 0;      /* Who knows ...  */
-     ifp->flags = flags;
-     ifp->ifMtu = mtu;
-+    ifp->ifSpeed = 0;
- 
--    /* make ifOperStatus depend on link status if available */
--    if (ifp->ifAdminStatus == 1) {
--        int i_tmp;
--        /* only UPed interfaces get correct link status - if any */
--        if (getKstatInt(NULL, name,"link_up",&i_tmp) == 0) {
--            ifp->ifOperStatus = i_tmp ? 1 : 2;
--        }
--    }
--
-     /*
--     * Set link Type and Speed
-+     * Get link speed
-      */
--    ifp->ifType = 1;
--    ifp->ifSpeed = 0;
--
--    if ((getKstatInt(NULL, name, "ifspeed", &ifp->ifSpeed) == 0) &&
--        (ifp->ifSpeed != 0)) {
-+    if ((getKstatInt(NULL, name, "ifspeed", &ifp->ifSpeed) == 0)) {
-         /*
-          * check for SunOS patch with half implemented ifSpeed 
-          */
--        if (ifp->ifSpeed < 10000) {
-+        if (ifp->ifSpeed > 0 && ifp->ifSpeed < 10000) {
-             ifp->ifSpeed *= 1000000;
-         }
-+	havespeed = B_TRUE;
-     } else if (getKstatInt(NULL, name, "ifSpeed", &ifp->ifSpeed) == 0) {
-         /*
-          * this is good 
-          */
-+	havespeed = B_TRUE;
-     }
- 
--    switch (name[0]) {
--    case 'a':          /* ath (802.11) */
--        if (name[1] == 't' && name[2] == 'h')
--            ifp->ifType = 71;
--        break;
--    case 'l':          /* le / lo / lane (ATM LAN Emulation) */
--        if (name[1] == 'o') {
--        if (!ifp->ifSpeed)
--            ifp->ifSpeed = 127000000;
--        ifp->ifType = 24;
--        } else if (name[1] == 'e') {
--        if (!ifp->ifSpeed)
--            ifp->ifSpeed = 10000000;
--        ifp->ifType = 6;
--        } else if (name[1] == 'a') {
--        if (!ifp->ifSpeed)
--            ifp->ifSpeed = 155000000;
--        ifp->ifType = 37;
--        }
--        break;
-+    /* make ifOperStatus depend on link status if available */
-+    if (ifp->ifAdminStatus == 1) {
-+        int i_tmp;
-+        /* only UPed interfaces get correct link status - if any */
-+        if (getKstatInt(NULL, name,"link_up",&i_tmp) == 0) {
-+            ifp->ifOperStatus = i_tmp ? 1 : 2;
-+#ifdef IFF_FAILED
-+        } else if (flags & IFF_FAILED) {
-+            /*
-+	     * If IPMP is used, and if the daemon marks the interface
-+	     * as 'failed', then we know for sure something is amiss.
-+             */
-+            ifp->ifOperStatus = 2;
-+#endif
-+	} else if (havespeed == B_TRUE && ifp->ifSpeed == 0) {
-+	    /* Heuristic */
-+	    ifp->ifOperStatus = 2;
-+	}
-+    }
- 
--    case 'g':          /* ge (gigabit ethernet card)  */
--    case 'c':          /* ce (Cassini Gigabit-Ethernet (PCI) */
--        if (!ifp->ifSpeed)
--        ifp->ifSpeed = 1000000000;
--        ifp->ifType = 6;
--        break;
--
--    case 'h':          /* hme (SBus card) */
--    case 'e':          /* eri (PCI card) */
--    case 'b':          /* be */
--    case 'd':          /* dmfe -- found on netra X1 */
--        if (!ifp->ifSpeed)
--        ifp->ifSpeed = 100000000;
--        ifp->ifType = 6;
--        break;
--
--    case 'f':          /* fa (Fore ATM) */
--        if (!ifp->ifSpeed)
--        ifp->ifSpeed = 155000000;
--        ifp->ifType = 37;
--        break;
--
--    case 'q':         /* qe (QuadEther)/qa (Fore ATM)/qfe (QuadFastEther) */
--        if (name[1] == 'a') {
--        if (!ifp->ifSpeed)
--            ifp->ifSpeed = 155000000;
--        ifp->ifType = 37;
--        } else if (name[1] == 'e') {
-+    /*
-+     * Set link Type and Speed (if it could not be determined from kstat)
-+     */
-+    if (ifp->ifType == 24) {
-+        ifp->ifSpeed = 127000000;
-+    } else if (ifp->ifType == 1 || ifp->ifType == 0) {
-+        /*
-+	 * Could not get the type from DLPI, so lets fall back to the hardcoded
-+	 * values.
-+	 */
-+        switch (name[0]) {
-+        case 'a':          /* ath (802.11) */
-+            if (name[1] == 't' && name[2] == 'h')
-+                ifp->ifType = 71;
-+            break;
-+        case 'l':          /* le / lo / lane (ATM LAN Emulation) */
-+            if (name[1] == 'o') {
-             if (!ifp->ifSpeed)
-+                ifp->ifSpeed = 127000000;
-+            ifp->ifType = 24;
-+            } else if (name[1] == 'e') {
-+            if (!ifp->ifSpeed)
-                 ifp->ifSpeed = 10000000;
-             ifp->ifType = 6;
--        } else if (name[1] == 'f') {
-+            } else if (name[1] == 'a') {
-             if (!ifp->ifSpeed)
--                ifp->ifSpeed = 100000000;
-+                ifp->ifSpeed = 155000000;
-+            ifp->ifType = 37;
-+            }
-+            break;
-+    
-+        case 'g':          /* ge (gigabit ethernet card)  */
-+        case 'c':          /* ce (Cassini Gigabit-Ethernet (PCI) */
-+            if (!ifp->ifSpeed)
-+            ifp->ifSpeed = 1000000000;
-             ifp->ifType = 6;
-+            break;
-+    
-+        case 'h':          /* hme (SBus card) */
-+        case 'e':          /* eri (PCI card) */
-+        case 'b':          /* be */
-+        case 'd':          /* dmfe -- found on netra X1 */
-+            if (!ifp->ifSpeed)
-+            ifp->ifSpeed = 100000000;
-+            ifp->ifType = 6;
-+            break;
-+    
-+        case 'f':          /* fa (Fore ATM) */
-+            if (!ifp->ifSpeed)
-+            ifp->ifSpeed = 155000000;
-+            ifp->ifType = 37;
-+            break;
-+    
-+        case 'q':         /* qe (QuadEther)/qa (Fore ATM)/qfe (QuadFastEther) */
-+            if (name[1] == 'a') {
-+            if (!ifp->ifSpeed)
-+                ifp->ifSpeed = 155000000;
-+            ifp->ifType = 37;
-+            } else if (name[1] == 'e') {
-+                if (!ifp->ifSpeed)
-+                    ifp->ifSpeed = 10000000;
-+                ifp->ifType = 6;
-+            } else if (name[1] == 'f') {
-+                if (!ifp->ifSpeed)
-+                    ifp->ifSpeed = 100000000;
-+                ifp->ifType = 6;
-+            }
-+            break;
-+    
-+        case 'i':          /* ibd (Infiniband)/ip.tun (IP tunnel) */
-+            if (name[1] == 'b')
-+                ifp->ifType = 199;
-+            else if (name[1] == 'p')
-+                ifp->ifType = 131;
-+            break;
-         }
--        break;
--
--    case 'i':          /* ibd (Infiniband)/ip.tun (IP tunnel) */
--        if (name[1] == 'b')
--            ifp->ifType = 199;
--        else if (name[1] == 'p')
--            ifp->ifType = 131;
--        break;
-     }
- }
- 
[email protected]@ -1491,68 +1524,69 @@
- }
- 
- /*
-- * Obtain the physical address using DLPI. Pieces of this code is directly
-- * taken from libdlpi, which unfortunately is not yet commonly available. 
-+ * Open a DLPI device.
-+ *
-+ * On success the file descriptor is returned.
-+ * On error -1 is returned.
-  */
--
--static int 
--get_phys_address(mib2_ifEntry_t *ifp)
-+static int
-+_dlpi_open(const char *devname)
- {
--    char                  *devstr;
--    int                   fd;
--    int                   ppa = -1;
--    int                   rc = -1;
-+    char *devstr;
-+    int fd = -1;
-+    int ppa = -1;
- 
--    DEBUGMSGTL(("kernel_sunos5", "get_phys_address called\n"));
-+    DEBUGMSGTL(("kernel_sunos5", "_dlpi_open called\n"));
- 
--    if ((devstr = malloc(5 + ifp->ifDescr.o_length + 1)) == NULL)
-+    if (devname == NULL)
-         return (-1);
--    (void) sprintf(devstr, "/dev/%s", ifp->ifDescr.o_bytes);
-+
-+    if ((devstr = malloc(5 + strlen(devname) + 1)) == NULL)
-+        return (-1);
-+    (void) sprintf(devstr, "/dev/%s", devname);
-     DEBUGMSGTL(("kernel_sunos5:dlpi", "devstr(%s)\n", devstr));
-     /*
-      * First try opening the device using style 1, if the device does not
-      * exist we try style 2. Modules will not be pushed, so something like
-      * ip tunnels will not work. 
-      */
--    if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open(%s)\n", devstr));
--        rc = _dlpi_phys_address(fd, ifp->ifPhysAddress.o_bytes,
--                                sizeof(ifp->ifPhysAddress.o_bytes),
--                                &ifp->ifPhysAddress.o_length);
--    } else if (_dlpi_parse_devname(devstr, &ppa) == 0) {
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 parse: %s, %d\n", 
--                    devstr, ppa));
--        /* try style 2 */
--        if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
--             DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open(%s)\n", devstr));
--             if (_dlpi_attach(fd, ppa) == 0) {
--                 DEBUGMSGTL(("kernel_sunos5:dlpi", "attached\n"));
--                 rc = _dlpi_phys_address(fd, ifp->ifPhysAddress.o_bytes,
--                                         sizeof(ifp->ifPhysAddress.o_bytes),
--                                         &ifp->ifPhysAddress.o_length);
--             }
--         } 
--     }
-+   
-+    DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open(%s)\n", devstr));
-+    if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) < 0) {
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open failed\n"));
-+        if (_dlpi_parse_devname(devstr, &ppa) == 0) {
-+            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 parse: %s, %d\n", 
-+                       devstr, ppa));
-+            /* try style 2 */
-+            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open(%s)\n", devstr));
- 
--     free(devstr);
--     if (fd != -1)
--         close(fd);
-+            if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
-+                if (_dlpi_attach(fd, ppa) == 0) {
-+                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached\n"));
-+                } else {
-+                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached failed\n"));
-+                    close(fd);
-+                    fd = -1;
-+                }
-+            } else {
-+                DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open failed\n"));
-+            }
-+        } 
-+    } else {
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open succeeded\n"));
-+    }
- 
--     if (rc == 0) {
--         /* successful */        
--         DEBUGMSGTL(("kernel_sunos5:dlpi", "got phys addr using DLPI\n"));
--         return (0);
--     } else {
--         DEBUGMSGTL(("kernel_sunos5:dlpi", "unable to get phys address\n"));
--         return (-1);
--     }
-+    /* clean up */
-+    free(devstr);
-+
-+    return (fd);
- }
- 
- /*
-- *
-+ * Obtain the physical address of the interface using DLPI
-  */
- static int
--_dlpi_phys_address(int fd, char *addr, int maxlen, int *addrlen)
-+_dlpi_get_phys_address(int fd, char *addr, int maxlen, int *addrlen)
- {
-     dl_phys_addr_req_t  paddr_req;
-     union DL_primitives *dlp;
[email protected]@ -1560,6 +1594,8 @@
-     char                buf[MAX(DL_PHYS_ADDR_ACK_SIZE+64, DL_ERROR_ACK_SIZE)];
-     int                 flag = 0;
- 
-+    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_phys_address\n"));
-+
-     paddr_req.dl_primitive = DL_PHYS_ADDR_REQ;
-     paddr_req.dl_addr_type = DL_CURR_PHYS_ADDR;
-     ctlbuf.buf = (char *)&paddr_req;
[email protected]@ -1570,7 +1606,7 @@
-     ctlbuf.maxlen = sizeof(buf);
-     ctlbuf.len = 0;
-     ctlbuf.buf = buf;
--    if (getmsg(fd, &ctlbuf, NULL, &flag) != 0)
-+    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0)
-         return (-1);
- 
-     if (ctlbuf.len < sizeof(uint32_t))
[email protected]@ -1580,6 +1616,7 @@
-     case DL_PHYS_ADDR_ACK: {
-         dl_phys_addr_ack_t *phyp = (dl_phys_addr_ack_t *)buf;
- 
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ACK\n"));
-         if (ctlbuf.len < DL_PHYS_ADDR_ACK_SIZE || phyp->dl_addr_length > maxlen)
-             return (-1); 
-         (void) memcpy(addr, buf+phyp->dl_addr_offset, phyp->dl_addr_length);
[email protected]@ -1589,16 +1626,137 @@
-     case DL_ERROR_ACK: {
-         dl_error_ack_t *errp = (dl_error_ack_t *)buf;
- 
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ERROR ACK\n"));
-         if (ctlbuf.len < DL_ERROR_ACK_SIZE)
-             return (-1);
-         return (errp->dl_errno);
-     }
-     default:
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", dlp->dl_primitive));
-         return (-1);
-     }
- }
- 
-+/*
-+ * Query the interface about it's type.
-+ */
- static int
-+_dlpi_get_iftype(int fd, unsigned int *iftype)
-+{
-+    dl_info_req_t info_req;
-+    union DL_primitives *dlp;
-+    struct strbuf       ctlbuf;
-+    char                buf[MAX(DL_INFO_ACK_SIZE, DL_ERROR_ACK_SIZE)];
-+    int                 flag = 0;
-+
-+    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_iftype\n"));
-+
-+    info_req.dl_primitive = DL_INFO_REQ;
-+    ctlbuf.buf = (char *)&info_req;
-+    ctlbuf.len = DL_INFO_REQ_SIZE;
-+    if (putmsg(fd, &ctlbuf, NULL, 0) < 0) {
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "putmsg failed: %d\nn", errno));
-+        return (-1);
-+    }
-+    
-+    ctlbuf.maxlen = sizeof(buf);
-+    ctlbuf.len = 0;
-+    ctlbuf.buf = buf;
-+    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0) {
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "getmsg failed: %d\n", errno));
-+        return (-1);
-+    }
-+
-+    if (ctlbuf.len < sizeof(uint32_t))
-+        return (-1);
-+    dlp = (union DL_primitives *)buf;
-+    switch (dlp->dl_primitive) {
-+    case DL_INFO_ACK: {
-+        dl_info_ack_t *info = (dl_info_ack_t *)buf;
-+
-+        if (ctlbuf.len < DL_INFO_ACK_SIZE)
-+            return (-1); 
-+
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "dl_mac_type: %x\n",
-+	           info->dl_mac_type));
-+	switch (info->dl_mac_type) {
-+	case DL_CSMACD:
-+	case DL_ETHER:
-+	case DL_ETH_CSMA:
-+		*iftype = 6;
-+		break;
-+	case DL_TPB:	/* Token Passing Bus */
-+		*iftype = 8;
-+		break;
-+	case DL_TPR:	/* Token Passing Ring */
-+		*iftype = 9;
-+		break;
-+	case DL_HDLC:
-+		*iftype = 118;
-+		break;
-+	case DL_FDDI:
-+		*iftype = 15;
-+		break;
-+	case DL_FC:	/* Fibre channel */
-+		*iftype = 56;
-+		break;
-+	case DL_ATM:
-+		*iftype = 37;
-+		break;
-+	case DL_X25:
-+	case DL_ISDN:
-+		*iftype = 63;
-+		break;
-+	case DL_HIPPI:
-+		*iftype = 47;
-+		break;
-+#ifdef DL_IB
-+	case DL_IB:
-+		*iftype = 199;
-+		break;
-+#endif
-+	case DL_FRAME:	/* Frame Relay */
-+		*iftype = 32;
-+		break;
-+	case DL_LOOP:
-+		*iftype = 24;
-+		break;
-+#ifdef DL_WIFI
-+	case DL_WIFI:
-+		*iftype = 71;
-+		break;
-+#endif
-+#ifdef DL_IPV4	/* then IPv6 is also defined */
-+	case DL_IPV4:	/* IPv4 Tunnel */
-+	case DL_IPV6:	/* IPv6 Tunnel */
-+		*iftype = 131;
-+		break;
-+#endif
-+	default:
-+		*iftype = 1;	/* Other */
-+		break;
-+	}
-+	
-+        return (0);
-+    }
-+    case DL_ERROR_ACK: {
-+        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
-+
-+        DEBUGMSGTL(("kernel_sunos5:dlpi",
-+                    "got DL_ERROR_ACK: dlpi %d, error %d\n", errp->dl_errno,
-+                    errp->dl_unix_errno));
-+
-+        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
-+            return (-1);
-+        return (errp->dl_errno);
-+    }
-+    default:
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", dlp->dl_primitive));
-+        return (-1);
-+    }
-+}
-+
-+static int
- _dlpi_attach(int fd, int ppa)
- {
-     dl_attach_req_t     attach_req;
[email protected]@ -1680,8 +1838,83 @@
-     } else {
- 	return 1;
-     }
--}	
-+}
- 
-+/*
-+ * Try to determine the index of a particular interface. If mfd-rewrites is
-+ * specified, then this function would only be used when the system does not
-+ * have if_nametoindex(3SOCKET).
-+ */
-+int
-+solaris2_if_nametoindex(const char *Name, int Len)
-+{
-+    int             i, sd, lastlen = 0, interfaces = 0;
-+    struct ifconf   ifc;
-+    struct ifreq   *ifrp = NULL;
-+    char           *buf = NULL;
-+
-+    if (Name == 0) {
-+        return 0;
-+    }
-+    if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-+        return 0;
-+    }
-+
-+    /*
-+     * Cope with lots of interfaces and brokenness of ioctl SIOCGIFCONF
-+     * on some platforms; see W. R. Stevens, ``Unix Network Programming
-+     * Volume I'', p.435.  
-+     */
-+
-+    for (i = 8;; i += 8) {
-+        buf = calloc(i, sizeof(struct ifreq));
-+        if (buf == NULL) {
-+            close(sd);
-+            return 0;
-+        }
-+        ifc.ifc_len = i * sizeof(struct ifreq);
-+        ifc.ifc_buf = (caddr_t) buf;
-+
-+        if (ioctl(sd, SIOCGIFCONF, (char *) &ifc) < 0) {
-+            if (errno != EINVAL || lastlen != 0) {
-+                /*
-+                 * Something has gone genuinely wrong.  
-+                 */
-+                free(buf);
-+                close(sd);
-+                return 0;
-+            }
-+            /*
-+             * Otherwise, it could just be that the buffer is too small.  
-+             */
-+        } else {
-+            if (ifc.ifc_len == lastlen) {
-+                /*
-+                 * The length is the same as the last time; we're done.  
-+                 */
-+                break;
-+            }
-+            lastlen = ifc.ifc_len;
-+        }
-+        free(buf);
-+    }
-+
-+    ifrp = ifc.ifc_req;
-+    interfaces = (ifc.ifc_len / sizeof(struct ifreq)) + 1;
-+
-+    for (i = 1; i < interfaces; i++, ifrp++) {
-+        if (strncmp(ifrp->ifr_name, Name, Len) == 0) {
-+            free(buf);
-+            close(sd);
-+            return i;
-+        }
-+    }
-+
-+    free(buf);
-+    close(sd);
-+    return 0;
-+}
-+
- #ifdef _STDC_COMPAT
- #ifdef __cplusplus
- }
--- a/components/net-snmp/patches/006.16742.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,625 +0,0 @@
-Index: net-snmp/agent/mibgroup/kernel_sunos5.c
-===================================================================
---- net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16741)
-+++ net-snmp/agent/mibgroup/kernel_sunos5.c	(revision 16742)
[email protected]@ -173,12 +173,14 @@
-             int mtu);
- static int get_if_stats(mib2_ifEntry_t *ifp);
- 
-+#if defined(HAVE_IF_NAMEINDEX) && defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)
- static int _dlpi_open(const char *devname);
- static int _dlpi_get_phys_address(int fd, char *paddr, int maxlen,
-                                   int *paddrlen);
- static int _dlpi_get_iftype(int fd, unsigned int *iftype);
- static int _dlpi_attach(int fd, int ppa);
- static int _dlpi_parse_devname(char *devname, int *ppap);
-+#endif
- 
- 
- 
[email protected]@ -1044,8 +1046,300 @@
-  * Get info for interfaces group. Mimics getmib interface as much as possible
-  * to be substituted later if SunSoft decides to extend its mib2 interface.
-  */
-+
- #if defined(HAVE_IF_NAMEINDEX) && defined(NETSNMP_INCLUDE_IFTABLE_REWRITES)
-+
-+/*
-+ * If IFTABLE_REWRITES is enabled, then we will also rely on DLPI to obtain
-+ * information from the NIC.
-+ */
-+
-+/*
-+ * Open a DLPI device.
-+ *
-+ * On success the file descriptor is returned.
-+ * On error -1 is returned.
-+ */
- static int
-+_dlpi_open(const char *devname)
-+{
-+    char *devstr;
-+    int fd = -1;
-+    int ppa = -1;
-+
-+    DEBUGMSGTL(("kernel_sunos5", "_dlpi_open called\n"));
-+
-+    if (devname == NULL)
-+        return (-1);
-+
-+    if ((devstr = malloc(5 + strlen(devname) + 1)) == NULL)
-+        return (-1);
-+    (void) sprintf(devstr, "/dev/%s", devname);
-+    DEBUGMSGTL(("kernel_sunos5:dlpi", "devstr(%s)\n", devstr));
-+    /*
-+     * First try opening the device using style 1, if the device does not
-+     * exist we try style 2. Modules will not be pushed, so something like
-+     * ip tunnels will not work. 
-+     */
-+   
-+    DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open(%s)\n", devstr));
-+    if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) < 0) {
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open failed\n"));
-+        if (_dlpi_parse_devname(devstr, &ppa) == 0) {
-+            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 parse: %s, %d\n", 
-+                       devstr, ppa));
-+            /* try style 2 */
-+            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open(%s)\n", devstr));
-+
-+            if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
-+                if (_dlpi_attach(fd, ppa) == 0) {
-+                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached\n"));
-+                } else {
-+                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached failed\n"));
-+                    close(fd);
-+                    fd = -1;
-+                }
-+            } else {
-+                DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open failed\n"));
-+            }
-+        } 
-+    } else {
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open succeeded\n"));
-+    }
-+
-+    /* clean up */
-+    free(devstr);
-+
-+    return (fd);
-+}
-+
-+/*
-+ * Obtain the physical address of the interface using DLPI
-+ */
-+static int
-+_dlpi_get_phys_address(int fd, char *addr, int maxlen, int *addrlen)
-+{
-+    dl_phys_addr_req_t  paddr_req;
-+    union DL_primitives *dlp;
-+    struct strbuf       ctlbuf;
-+    char                buf[MAX(DL_PHYS_ADDR_ACK_SIZE+64, DL_ERROR_ACK_SIZE)];
-+    int                 flag = 0;
-+
-+    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_phys_address\n"));
-+
-+    paddr_req.dl_primitive = DL_PHYS_ADDR_REQ;
-+    paddr_req.dl_addr_type = DL_CURR_PHYS_ADDR;
-+    ctlbuf.buf = (char *)&paddr_req;
-+    ctlbuf.len = DL_PHYS_ADDR_REQ_SIZE;
-+    if (putmsg(fd, &ctlbuf, NULL, 0) < 0)
-+        return (-1);
-+    
-+    ctlbuf.maxlen = sizeof(buf);
-+    ctlbuf.len = 0;
-+    ctlbuf.buf = buf;
-+    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0)
-+        return (-1);
-+
-+    if (ctlbuf.len < sizeof(uint32_t))
-+        return (-1);
-+    dlp = (union DL_primitives *)buf;
-+    switch (dlp->dl_primitive) {
-+    case DL_PHYS_ADDR_ACK: {
-+        dl_phys_addr_ack_t *phyp = (dl_phys_addr_ack_t *)buf;
-+
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ACK\n"));
-+        if (ctlbuf.len < DL_PHYS_ADDR_ACK_SIZE || phyp->dl_addr_length > maxlen)
-+            return (-1); 
-+        (void) memcpy(addr, buf+phyp->dl_addr_offset, phyp->dl_addr_length);
-+        *addrlen = phyp->dl_addr_length;
-+        return (0);
-+    }
-+    case DL_ERROR_ACK: {
-+        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
-+
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ERROR ACK\n"));
-+        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
-+            return (-1);
-+        return (errp->dl_errno);
-+    }
-+    default:
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", dlp->dl_primitive));
-+        return (-1);
-+    }
-+}
-+
-+/*
-+ * Query the interface about it's type.
-+ */
-+static int
-+_dlpi_get_iftype(int fd, unsigned int *iftype)
-+{
-+    dl_info_req_t info_req;
-+    union DL_primitives *dlp;
-+    struct strbuf       ctlbuf;
-+    char                buf[MAX(DL_INFO_ACK_SIZE, DL_ERROR_ACK_SIZE)];
-+    int                 flag = 0;
-+
-+    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_iftype\n"));
-+
-+    info_req.dl_primitive = DL_INFO_REQ;
-+    ctlbuf.buf = (char *)&info_req;
-+    ctlbuf.len = DL_INFO_REQ_SIZE;
-+    if (putmsg(fd, &ctlbuf, NULL, 0) < 0) {
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "putmsg failed: %d\nn", errno));
-+        return (-1);
-+    }
-+    
-+    ctlbuf.maxlen = sizeof(buf);
-+    ctlbuf.len = 0;
-+    ctlbuf.buf = buf;
-+    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0) {
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "getmsg failed: %d\n", errno));
-+        return (-1);
-+    }
-+
-+    if (ctlbuf.len < sizeof(uint32_t))
-+        return (-1);
-+    dlp = (union DL_primitives *)buf;
-+    switch (dlp->dl_primitive) {
-+    case DL_INFO_ACK: {
-+        dl_info_ack_t *info = (dl_info_ack_t *)buf;
-+
-+        if (ctlbuf.len < DL_INFO_ACK_SIZE)
-+            return (-1); 
-+
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "dl_mac_type: %x\n",
-+	           info->dl_mac_type));
-+	switch (info->dl_mac_type) {
-+	case DL_CSMACD:
-+	case DL_ETHER:
-+	case DL_ETH_CSMA:
-+		*iftype = 6;
-+		break;
-+	case DL_TPB:	/* Token Passing Bus */
-+		*iftype = 8;
-+		break;
-+	case DL_TPR:	/* Token Passing Ring */
-+		*iftype = 9;
-+		break;
-+	case DL_HDLC:
-+		*iftype = 118;
-+		break;
-+	case DL_FDDI:
-+		*iftype = 15;
-+		break;
-+	case DL_FC:	/* Fibre channel */
-+		*iftype = 56;
-+		break;
-+	case DL_ATM:
-+		*iftype = 37;
-+		break;
-+	case DL_X25:
-+	case DL_ISDN:
-+		*iftype = 63;
-+		break;
-+	case DL_HIPPI:
-+		*iftype = 47;
-+		break;
-+#ifdef DL_IB
-+	case DL_IB:
-+		*iftype = 199;
-+		break;
-+#endif
-+	case DL_FRAME:	/* Frame Relay */
-+		*iftype = 32;
-+		break;
-+	case DL_LOOP:
-+		*iftype = 24;
-+		break;
-+#ifdef DL_WIFI
-+	case DL_WIFI:
-+		*iftype = 71;
-+		break;
-+#endif
-+#ifdef DL_IPV4	/* then IPv6 is also defined */
-+	case DL_IPV4:	/* IPv4 Tunnel */
-+	case DL_IPV6:	/* IPv6 Tunnel */
-+		*iftype = 131;
-+		break;
-+#endif
-+	default:
-+		*iftype = 1;	/* Other */
-+		break;
-+	}
-+	
-+        return (0);
-+    }
-+    case DL_ERROR_ACK: {
-+        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
-+
-+        DEBUGMSGTL(("kernel_sunos5:dlpi",
-+                    "got DL_ERROR_ACK: dlpi %d, error %d\n", errp->dl_errno,
-+                    errp->dl_unix_errno));
-+
-+        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
-+            return (-1);
-+        return (errp->dl_errno);
-+    }
-+    default:
-+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", dlp->dl_primitive));
-+        return (-1);
-+    }
-+}
-+
-+static int
-+_dlpi_attach(int fd, int ppa)
-+{
-+    dl_attach_req_t     attach_req;
-+    struct strbuf       ctlbuf;
-+    union DL_primitives *dlp;
-+    char                buf[MAX(DL_OK_ACK_SIZE, DL_ERROR_ACK_SIZE)];
-+    int                 flag = 0;
-+   
-+    attach_req.dl_primitive = DL_ATTACH_REQ;
-+    attach_req.dl_ppa = ppa;
-+    ctlbuf.buf = (char *)&attach_req;
-+    ctlbuf.len = DL_ATTACH_REQ_SIZE;
-+    if (putmsg(fd, &ctlbuf, NULL, 0) != 0)
-+        return (-1);
-+
-+    ctlbuf.buf = buf;
-+    ctlbuf.len = 0;
-+    ctlbuf.maxlen = sizeof(buf);
-+    if (getmsg(fd, &ctlbuf, NULL, &flag) != 0)
-+        return (-1);
-+
-+    if (ctlbuf.len < sizeof(uint32_t))
-+        return (-1); 
-+
-+    dlp = (union DL_primitives *)buf;
-+    if (dlp->dl_primitive == DL_OK_ACK && ctlbuf.len >= DL_OK_ACK_SIZE)
-+        return (0); 
-+    return (-1);
-+}
-+
-+static int
-+_dlpi_parse_devname(char *devname, int *ppap)
-+{
-+    int ppa = 0;
-+    int m = 1;
-+    int i = strlen(devname) - 1;
-+
-+    while (i >= 0 && isdigit(devname[i])) {
-+        ppa += m * (devname[i] - '0'); 
-+        m *= 10;
-+        i--;
-+    }
-+
-+    if (m == 1) {
-+        return (-1);
-+    }
-+    *ppap = ppa;
-+    devname[i + 1] = '\0';
-+
-+    return (0);
-+}
-+static int
- getif(mib2_ifEntry_t *ifbuf, size_t size, req_e req_type,
-       mib2_ifEntry_t *resp,  size_t *length, int (*comp)(void *, void *),
-       void *arg)
[email protected]@ -1229,7 +1523,8 @@
- 
- 	if (ioctl(ifsd, SIOCGIFFLAGS, ifrp) < 0) {
- 	    ret = -1;
--	    snmp_log(LOG_ERR, "SIOCGIFFLAGS %s: %s\n", ifrp->ifr_name, strerror(errno));
-+	    snmp_log(LOG_ERR, "SIOCGIFFLAGS %s: %s\n", ifrp->ifr_name,
-+                     strerror(errno));
- 	    goto Return;
- 	}
-         if_flags = ifrp->ifr_flags;
[email protected]@ -1522,294 +1817,7 @@
-                                       ifp->ifHCOutMulticastPkts);
-     return(0);
- }
--
- /*
-- * Open a DLPI device.
-- *
-- * On success the file descriptor is returned.
-- * On error -1 is returned.
-- */
--static int
--_dlpi_open(const char *devname)
--{
--    char *devstr;
--    int fd = -1;
--    int ppa = -1;
--
--    DEBUGMSGTL(("kernel_sunos5", "_dlpi_open called\n"));
--
--    if (devname == NULL)
--        return (-1);
--
--    if ((devstr = malloc(5 + strlen(devname) + 1)) == NULL)
--        return (-1);
--    (void) sprintf(devstr, "/dev/%s", devname);
--    DEBUGMSGTL(("kernel_sunos5:dlpi", "devstr(%s)\n", devstr));
--    /*
--     * First try opening the device using style 1, if the device does not
--     * exist we try style 2. Modules will not be pushed, so something like
--     * ip tunnels will not work. 
--     */
--   
--    DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open(%s)\n", devstr));
--    if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) < 0) {
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open failed\n"));
--        if (_dlpi_parse_devname(devstr, &ppa) == 0) {
--            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 parse: %s, %d\n", 
--                       devstr, ppa));
--            /* try style 2 */
--            DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open(%s)\n", devstr));
--
--            if ((fd = open(devstr, O_RDWR | O_NONBLOCK)) != -1) {
--                if (_dlpi_attach(fd, ppa) == 0) {
--                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached\n"));
--                } else {
--                    DEBUGMSGTL(("kernel_sunos5:dlpi", "attached failed\n"));
--                    close(fd);
--                    fd = -1;
--                }
--            } else {
--                DEBUGMSGTL(("kernel_sunos5:dlpi", "style2 open failed\n"));
--            }
--        } 
--    } else {
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "style1 open succeeded\n"));
--    }
--
--    /* clean up */
--    free(devstr);
--
--    return (fd);
--}
--
--/*
-- * Obtain the physical address of the interface using DLPI
-- */
--static int
--_dlpi_get_phys_address(int fd, char *addr, int maxlen, int *addrlen)
--{
--    dl_phys_addr_req_t  paddr_req;
--    union DL_primitives *dlp;
--    struct strbuf       ctlbuf;
--    char                buf[MAX(DL_PHYS_ADDR_ACK_SIZE+64, DL_ERROR_ACK_SIZE)];
--    int                 flag = 0;
--
--    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_phys_address\n"));
--
--    paddr_req.dl_primitive = DL_PHYS_ADDR_REQ;
--    paddr_req.dl_addr_type = DL_CURR_PHYS_ADDR;
--    ctlbuf.buf = (char *)&paddr_req;
--    ctlbuf.len = DL_PHYS_ADDR_REQ_SIZE;
--    if (putmsg(fd, &ctlbuf, NULL, 0) < 0)
--        return (-1);
--    
--    ctlbuf.maxlen = sizeof(buf);
--    ctlbuf.len = 0;
--    ctlbuf.buf = buf;
--    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0)
--        return (-1);
--
--    if (ctlbuf.len < sizeof(uint32_t))
--        return (-1);
--    dlp = (union DL_primitives *)buf;
--    switch (dlp->dl_primitive) {
--    case DL_PHYS_ADDR_ACK: {
--        dl_phys_addr_ack_t *phyp = (dl_phys_addr_ack_t *)buf;
--
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ACK\n"));
--        if (ctlbuf.len < DL_PHYS_ADDR_ACK_SIZE || phyp->dl_addr_length > maxlen)
--            return (-1); 
--        (void) memcpy(addr, buf+phyp->dl_addr_offset, phyp->dl_addr_length);
--        *addrlen = phyp->dl_addr_length;
--        return (0);
--    }
--    case DL_ERROR_ACK: {
--        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
--
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "got ERROR ACK\n"));
--        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
--            return (-1);
--        return (errp->dl_errno);
--    }
--    default:
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", dlp->dl_primitive));
--        return (-1);
--    }
--}
--
--/*
-- * Query the interface about it's type.
-- */
--static int
--_dlpi_get_iftype(int fd, unsigned int *iftype)
--{
--    dl_info_req_t info_req;
--    union DL_primitives *dlp;
--    struct strbuf       ctlbuf;
--    char                buf[MAX(DL_INFO_ACK_SIZE, DL_ERROR_ACK_SIZE)];
--    int                 flag = 0;
--
--    DEBUGMSGTL(("kernel_sunos5:dlpi", "_dlpi_get_iftype\n"));
--
--    info_req.dl_primitive = DL_INFO_REQ;
--    ctlbuf.buf = (char *)&info_req;
--    ctlbuf.len = DL_INFO_REQ_SIZE;
--    if (putmsg(fd, &ctlbuf, NULL, 0) < 0) {
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "putmsg failed: %d\nn", errno));
--        return (-1);
--    }
--    
--    ctlbuf.maxlen = sizeof(buf);
--    ctlbuf.len = 0;
--    ctlbuf.buf = buf;
--    if (getmsg(fd, &ctlbuf, NULL, &flag) < 0) {
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "getmsg failed: %d\n", errno));
--        return (-1);
--    }
--
--    if (ctlbuf.len < sizeof(uint32_t))
--        return (-1);
--    dlp = (union DL_primitives *)buf;
--    switch (dlp->dl_primitive) {
--    case DL_INFO_ACK: {
--        dl_info_ack_t *info = (dl_info_ack_t *)buf;
--
--        if (ctlbuf.len < DL_INFO_ACK_SIZE)
--            return (-1); 
--
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "dl_mac_type: %x\n",
--	           info->dl_mac_type));
--	switch (info->dl_mac_type) {
--	case DL_CSMACD:
--	case DL_ETHER:
--	case DL_ETH_CSMA:
--		*iftype = 6;
--		break;
--	case DL_TPB:	/* Token Passing Bus */
--		*iftype = 8;
--		break;
--	case DL_TPR:	/* Token Passing Ring */
--		*iftype = 9;
--		break;
--	case DL_HDLC:
--		*iftype = 118;
--		break;
--	case DL_FDDI:
--		*iftype = 15;
--		break;
--	case DL_FC:	/* Fibre channel */
--		*iftype = 56;
--		break;
--	case DL_ATM:
--		*iftype = 37;
--		break;
--	case DL_X25:
--	case DL_ISDN:
--		*iftype = 63;
--		break;
--	case DL_HIPPI:
--		*iftype = 47;
--		break;
--#ifdef DL_IB
--	case DL_IB:
--		*iftype = 199;
--		break;
--#endif
--	case DL_FRAME:	/* Frame Relay */
--		*iftype = 32;
--		break;
--	case DL_LOOP:
--		*iftype = 24;
--		break;
--#ifdef DL_WIFI
--	case DL_WIFI:
--		*iftype = 71;
--		break;
--#endif
--#ifdef DL_IPV4	/* then IPv6 is also defined */
--	case DL_IPV4:	/* IPv4 Tunnel */
--	case DL_IPV6:	/* IPv6 Tunnel */
--		*iftype = 131;
--		break;
--#endif
--	default:
--		*iftype = 1;	/* Other */
--		break;
--	}
--	
--        return (0);
--    }
--    case DL_ERROR_ACK: {
--        dl_error_ack_t *errp = (dl_error_ack_t *)buf;
--
--        DEBUGMSGTL(("kernel_sunos5:dlpi",
--                    "got DL_ERROR_ACK: dlpi %d, error %d\n", errp->dl_errno,
--                    errp->dl_unix_errno));
--
--        if (ctlbuf.len < DL_ERROR_ACK_SIZE)
--            return (-1);
--        return (errp->dl_errno);
--    }
--    default:
--        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", dlp->dl_primitive));
--        return (-1);
--    }
--}
--
--static int
--_dlpi_attach(int fd, int ppa)
--{
--    dl_attach_req_t     attach_req;
--    struct strbuf       ctlbuf;
--    union DL_primitives *dlp;
--    char                buf[MAX(DL_OK_ACK_SIZE, DL_ERROR_ACK_SIZE)];
--    int                 flag = 0;
--   
--    attach_req.dl_primitive = DL_ATTACH_REQ;
--    attach_req.dl_ppa = ppa;
--    ctlbuf.buf = (char *)&attach_req;
--    ctlbuf.len = DL_ATTACH_REQ_SIZE;
--    if (putmsg(fd, &ctlbuf, NULL, 0) != 0)
--        return (-1);
--
--    ctlbuf.buf = buf;
--    ctlbuf.len = 0;
--    ctlbuf.maxlen = sizeof(buf);
--    if (getmsg(fd, &ctlbuf, NULL, &flag) != 0)
--        return (-1);
--
--    if (ctlbuf.len < sizeof(uint32_t))
--        return (-1); 
--
--    dlp = (union DL_primitives *)buf;
--    if (dlp->dl_primitive == DL_OK_ACK && ctlbuf.len >= DL_OK_ACK_SIZE)
--        return (0); 
--    return (-1);
--}
--
--static int
--_dlpi_parse_devname(char *devname, int *ppap)
--{
--    int ppa = 0;
--    int m = 1;
--    int i = strlen(devname) - 1;
--
--    while (i >= 0 && isdigit(devname[i])) {
--        ppa += m * (devname[i] - '0'); 
--        m *= 10;
--        i--;
--    }
--
--    if (m == 1) {
--        return (-1);
--    }
--    *ppap = ppa;
--    devname[i + 1] = '\0';
--
--    return (0);
--}
--
--/*
-  * Always TRUE. May be used as a comparison function in getMibstat
-  * to obtain the whole table (GET_FIRST should be used) 
-  */
--- a/components/net-snmp/patches/007.16863.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-Index: net-snmp/snmplib/asn1.c
-===================================================================
---- net-snmp/snmplib/asn1.c	(revision 16862)
-+++ net-snmp/snmplib/asn1.c	(revision 16863)
[email protected]@ -2735,7 +2735,7 @@
-     }
- 
-     CHECK_OVERFLOW_S(integer,10);
--    testvalue = (*intp < 0) ? -1 : 0;
-+    testvalue = (integer < 0) ? -1 : 0;
- 
-     if (((*pkt_len - *offset) < 1) && !(r && asn_realloc(pkt, pkt_len))) {
-         return 0;
--- a/components/net-snmp/patches/009.ltmain.sh.patch	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/patches/009.ltmain.sh.patch	Tue May 14 22:57:32 2013 -0700
@@ -1,31 +1,28 @@
---- net-snmp-5.4.2.1/ltmain.sh	Fri Jun  6 02:34:34 2008
-+++ net-snmp-5.4.2.1/ltmain.mod.sh	Tue Feb  3 11:02:05 2009
[email protected]@ -1425,7 +1425,9 @@
+#
+# The Net-SNMP libraries are built without -zdefs and are missing a large
+# number of dependency specifications (DT_NEEDED).  This makes it
+# impossible to build plugin modules against these libraries using
+# -zdefs, which should work. One such example is FMA in ON gate. 
+#
+--- net-snmp-5.7.2/ltmain.sh	Sun Dec 30 23:42:05 2012
++++ net-snmp-5.7.2/ltmain.sh	Sun Dec 30 23:49:01 2012
[email protected]@ -5406,7 +5406,9 @@
  	  if test "$prev" = rpath; then
  	    case "$rpath " in
  	    *" $arg "*) ;;
--	    *) rpath="$rpath $arg" ;;
-+	    *) rpath="$rpath $arg"
-+        # This is make sure only $libdir path is encoded in RUNPATH
-+        sma_rpath="$rpath" ;;
+-	    *) func_append rpath " $arg" ;;
++	    *) func_append rpath " $arg"
++		# This is make sure only $libdir path is encoded in RUNPATH
++			sma_rpath="$rpath" ;;
  	    esac
  	  else
  	    case "$xrpath " in
[email protected]@ -3915,7 +3917,7 @@
- 	if test "$hardcode_into_libs" = yes; then
- 	  # Hardcode the library paths
- 	  hardcode_libdirs=
--	  dep_rpath=
-+	  dep_rpath="-R $sma_rpath"
- 	  rpath="$finalize_rpath"
- 	  test "$mode" != relink && rpath="$compile_rpath$rpath"
- 	  for libdir in $rpath; do
[email protected]@ -3935,7 +3937,7 @@
[email protected]@ -8046,7 +8048,7 @@
  		fi
  	      else
  		eval flag=\"$hardcode_libdir_flag_spec\"
--		dep_rpath="$dep_rpath $flag"
-+		#dep_rpath="$dep_rpath $flag"
+-		func_append dep_rpath " $flag"
++#func_append dep_rpath " $flag"
  	      fi
  	    elif test -n "$runpath_var"; then
  	      case "$perm_rpath " in
--- a/components/net-snmp/patches/011.Makefile.in.patch	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/patches/011.Makefile.in.patch	Tue May 14 22:57:32 2013 -0700
@@ -1,38 +1,42 @@
-Only in net-snmp-5.4.1.mod: .patches.011.Makefile.in.patch
-diff -ru net-snmp-5.4.1/agent/Makefile.in net-snmp-5.4.1.mod/agent/Makefile.in
---- net-snmp-5.4.1/agent/Makefile.in	2007-07-05 04:56:56.000000000 +0530
-+++ net-snmp-5.4.1.mod/agent/Makefile.in	2009-06-24 06:08:28.858891018 +0530
[email protected]@ -120,8 +120,11 @@
- OBJS		= $(LIBAGENTOBJS)  $(AGENTOBJS)  mib_modules.o  auto_nlist.o
+#
+# The Net-SNMP libraries are built without -zdefs and are missing a large
+# number of dependency specifications (DT_NEEDED).  This makes it
+# impossible to build plugin modules against these libraries using
+# -zdefs, which should work. One such example is FMA in ON gate. 
+#
+--- net-snmp-5.7.2/agent/Makefile.in	Tue Oct  9 15:28:58 2012
++++ net-snmp-5.7.2/agent/Makefile.in	Sun Dec 30 23:58:44 2012
[email protected]@ -274,9 +274,13 @@
  LOBJS		= $(LLIBAGENTOBJS) $(LAGENTOBJS) mib_modules.lo auto_nlist.lo
+ FTOBJS		= $(LLIBAGENTFTS) $(FTAGENTOBJS) mib_modules.ft auto_nlist.ft
  
-+LIB_LD_ADD_AGENT	=-lnetsnmp -lnetsnmphelpers
-+ 
-+LIB_LD_ADD_PATH_MIBS	=-Lhelpers -L../snmplib
++LIB_LD_ADD_AGENT   =-lnetsnmp -lnetsnmphelpers
++
++LIB_LD_ADD_PATH_MIBS   =-Lhelpers -L../snmplib
++
+ FEATUREFILE     = $(top_builddir)/include/net-snmp/agent/features.h
  
 -all: agentlib subdirs miblib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
 +all: agentlib subdirs miblib relinklib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
  
  #
  # build stuff targets
[email protected]@ -152,6 +155,10 @@
[email protected]@ -306,6 +310,10 @@
  
  agentlib: $(AGENTLIB)
  
-+relinklib:     ${LLIBAGENTOBJS} $(USELIBS)
++relinklib:	${LLIBAGENTOBJS} $(USELIBS)
 +	$(LIB_LD_CMD) $(AGENTLIB) $(LIB_LD_ADD_PATH_MIBS) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) $(LIB_LD_ADD_AGENT)
 +	$(RANLIB) $(AGENTLIB) $(LIB_LD_ADD_AGENT)
 +
  miblib: $(MIBLIB)
  
- libs: $(INSTALLLIBS)
-Only in net-snmp-5.4.1.mod/agent: Makefile.in~
-diff -ru net-snmp-5.4.1/agent/helpers/Makefile.in net-snmp-5.4.1.mod/agent/helpers/Makefile.in
---- net-snmp-5.4.1/agent/helpers/Makefile.in	2007-06-27 03:15:20.000000000 +0530
-+++ net-snmp-5.4.1.mod/agent/helpers/Makefile.in	2009-06-24 06:01:35.912702710 +0530
[email protected]@ -137,8 +137,11 @@
- 	table_tdata.lo \
- 	watcher.lo
+ libs: $(AGENTLIB) $(MIBLIB)
+--- net-snmp-5.7.2/agent/helpers/Makefile.in	Sun Dec 30 22:37:05 2012
++++ net-snmp-5.7.2/agent/helpers/Makefile.in	Mon Dec 31 00:02:37 2012
[email protected]@ -31,8 +31,11 @@
+ 
+ LOBJS = dummy.lo
  
 +LIB_LD_ADD	=-lnetsnmp
 +LIB_LD_ADD_PATH	=-L../../snmplib
@@ -40,31 +44,30 @@
  all: standardall
  
  libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION):    $(LOBJS)
--	$(LIB_LD_CMD) [email protected] $(LOBJS) $(AGENTLIB) $(NETSNMPLIB) $(LDFLAGS) $(LIB_LD_LIBS)
+-	$(LIB_LD_CMD) [email protected] $(LOBJS) @[email protected] $(LDFLAGS) $(LIB_LD_LIBS)
 -	$(RANLIB) [email protected]
-+	$(LIB_LD_CMD) [email protected] $(LIB_LD_ADD_PATH) $(LOBJS) $(AGENTLIB) $(NETSNMPLIB) $(LDFLAGS) $(LIB_LD_LIBS) $(LIB_LD_ADD)
++	$(LIB_LD_CMD) [email protected] $(LIB_LD_ADD_PATH) $(LOBJS) @[email protected] $(LDFLAGS) $(LIB_LD_LIBS) $(LIB_LD_ADD)
 +	$(RANLIB) [email protected] $(LIB_LD_ADD)
-diff -ru net-snmp-5.4.1/snmplib/Makefile.in net-snmp-5.4.1.mod/snmplib/Makefile.in
---- net-snmp-5.4.1/snmplib/Makefile.in	2007-06-19 03:04:43.000000000 +0530
-+++ net-snmp-5.4.1.mod/snmplib/Makefile.in	2009-06-24 06:01:35.912972597 +0530
[email protected]@ -181,6 +181,9 @@
+--- net-snmp-5.7.2/snmplib/Makefile.in	Sun Dec 30 22:37:08 2012
++++ net-snmp-5.7.2/agent/helpers/Makefile.in	Mon Dec 31 00:06:01 2012
[email protected]@ -221,6 +221,9 @@
  # just in case someone wants to remove libtool, change this to OBJS.
  TOBJS=$(LOBJS)
  
 +# To satisfy -zdefs
-+LIB_LD_ADD	=-lnsl -lsocket -L$(libdir)
++LIB_LD_ADD =-lnsl -lsocket -L$(libdir)
 +
+ FEATUREFILE     = $(top_builddir)/include/net-snmp/library/features.h
+ 
  # 
- CPPFLAGS = $(TOP_INCLUDES) -I. 	$(SNMPLIB_INCLUDES) @[email protected]
- 
[email protected]@ -188,8 +191,8 @@
[email protected]@ -230,8 +233,8 @@
  
  # how to build the libraries.
  libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
--	$(LIB_LD_CMD) [email protected] $(TOBJS) $(LDFLAGS) @[email protected]
+-	$(LIB_LD_CMD) [email protected] $(TOBJS) @[email protected] $(LDFLAGS) @[email protected]
 -	$(RANLIB) [email protected]
-+	$(LIB_LD_CMD) [email protected] $(TOBJS) $(LDFLAGS) @[email protected] } $(LIB_LD_ADD)
-+	$(RANLIB) [email protected]  $(LIB_LD_ADD)
++	$(LIB_LD_CMD) [email protected] $(TOBJS) @[email protected] $(LDFLAGS) @[email protected] } $(LIB_LD_ADD)
++	$(RANLIB) [email protected] $(LIB_LD_ADD)
  
  libsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
- 	$(LIB_LD_CMD) [email protected] $(TOBJS) $(LDFLAGS) @[email protected]
+ 	$(LIB_LD_CMD) [email protected] $(TOBJS) @[email protected] $(LDFLAGS) @[email protected]
--- a/components/net-snmp/patches/013.6852099.proxy.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
---- a/agent/mibgroup/ucd-snmp/proxy.c	2006-10-17 18:16:29.000000000 +0200
-+++ b/agent/mibgroup/ucd-snmp/proxy.c	2012-03-27 09:02:10.488425400 +0200
[email protected]@ -396,6 +396,8 @@
- 
-     if (!pdu || !sp) {
-         netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_GENERR);
-+        if (pdu)
-+            snmp_free_pdu(pdu);
-         return SNMP_ERR_NOERROR;
-     }
- 
[email protected]@ -408,6 +410,8 @@
-                 /*
-                  * too large 
-                  */
-+                if (pdu)
-+                    snmp_free_pdu(pdu);
-                 snmp_log(LOG_ERR,
-                          "proxy oid request length is too long\n");
-                 return SNMP_ERR_NOERROR;
[email protected]@ -437,6 +441,8 @@
-      */
-     if (!proxy_fill_in_session(handler, reqinfo, (void **)&configured)) {
-         netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_GENERR);
-+        if (pdu)
-+            snmp_free_pdu(pdu);
-         return SNMP_ERR_NOERROR;
-     }
- 
--- a/components/net-snmp/patches/017.6984919.kernel_sunos5.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
---- patch/net-snmp-5.4.1/agent/mibgroup/kernel_sunos5.c	Tue Oct 12 06:55:48 2010
-+++ net-snmp-5.4.1/agent/mibgroup/kernel_sunos5.c	Tue Oct 12 07:03:49 2010
[email protected]@ -82,7 +82,7 @@
- static
- mibcache        Mibcache[MIBCACHE_SIZE+1] = {
-     {MIB_SYSTEM, 0, (void *) -1, 0, 0, 0, 0},
--    {MIB_INTERFACES, 10 * sizeof(mib2_ifEntry_t), (void *) -1, 0, 30, 0,
-+    {MIB_INTERFACES, 50 * sizeof(mib2_ifEntry_t), (void *) -1, 0, 30, 0,
-      0},
-     {MIB_AT, 0, (void *) -1, 0, 0, 0, 0},
-     {MIB_IP, sizeof(mib2_ip_t), (void *) -1, 0, 60, 0, 0},
--- a/components/net-snmp/patches/018.6932608.systemstats_common.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
---- patch/net-snmp-5.4.1-64/agent/mibgroup/ip-mib/data_access/systemstats_common.c	Tue Feb  8 13:58:36 2005
-+++ net-snmp-5.4.1/agent/mibgroup/ip-mib/data_access/systemstats_common.c	Mon Aug  2 05:21:15 2010
[email protected]@ -339,7 +339,7 @@
-      */
-     if (0 == need_wrap_check) {
-         SNMP_FREE(prev_vals->old_stats);
--    }
-+    } else {
-     
-     /*
-      * update old stats from new stats.
[email protected]@ -346,6 +346,7 @@
-      * careful - old_stats is a pointer to stats...
-      */
-     memcpy(prev_vals->old_stats, &new_vals->stats, sizeof(new_vals->stats));
-+    }
-     
-     return 0;
- }
--- a/components/net-snmp/patches/019.6998845.container.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,314 +0,0 @@
---- net-snmp/include/net-snmp/library/container.h	Mon Dec  5 00:13:04 2005
-+++ net-snmp/include/net-snmp/library/container.h	Fri Jan 14 17:35:37 2011
[email protected]@ -31,8 +31,16 @@
-     struct netsnmp_container_s; /** forward declare */
- 
-     /*
--     * function returning an int for an operation on a container
-+     * function for performing an operation on a container which
-+     * returns (maybe the same) container.
-      */
-+
-+    typedef struct netsnmp_container_s* (netsnmp_container_mod_op)
-+      (struct netsnmp_container_s *, void *context, u_int flags);
-+
-+    /*
-+     * function for setting an option on a container
-+     */
-     typedef int (netsnmp_container_option)(struct netsnmp_container_s *,
-                                            int set, u_int flags);
- 
[email protected]@ -192,6 +200,14 @@
-        netsnmp_container_op    *insert_filter;
- 
-        /*
-+	* OPTIONAL function to duplicate a container. Defaults to a shallow
-+	* copy. Only the specified container is copied (i.e. sub-containers
-+	* not included).
-+	*/
-+
-+       netsnmp_container_mod_op *duplicate;
-+
-+       /*
-         * function to compare two object stored in the container.
-         *
-         * Returns:
[email protected]@ -219,11 +235,16 @@
- 
-        /*
-         * sort count, for iterators to track (insert/delete
--        * bumps coutner, invalidates iterator
-+        * bumps counter, invalidates iterator)
-         */
-        u_long                          sync;
- 
-        /*
-+	* flags
-+	*/
-+       u_int                           flags;
-+
-+       /*
-         * containers can contain other containers (additional indexes)
-         */
-        struct netsnmp_container_s *next, *prev;
[email protected]@ -288,15 +309,15 @@
- #define CONTAINER_SET_OPTIONS(x,o,rc)  do {                             \
-         if (NULL==(x)->options)                                         \
-             rc = -1;                                                    \
--        else                                                            \
-+        else {                                                          \
-             rc = (x)->options(x, 1, o);                                 \
-+	     if (rc != -1 )						\
-+		(x)->flags |= o;                                        \
-+	}								\
-     } while(0)
- 
- #define CONTAINER_CHECK_OPTION(x,o,rc)    do {                          \
--        if (NULL==(x)->options)                                         \
--            rc = -1;                                                    \
--        else                                                            \
--            rc = (x)->options(x,0, o);                                  \
-+	rc = x->flags & 0;                                              \
-     } while(0)
- 
- 
[email protected]@ -335,6 +356,12 @@
-     int CONTAINER_REMOVE(netsnmp_container *x, const void *k);
- 
-     /*
-+     * duplicate container
-+     */
-+    netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx,
-+		u_int flags); 
-+
-+    /*
-      * clear all containers. When clearing the *first* container, and
-      * *only* the first container, call the function f for each item.
-      * After calling this function, all containers should be empty.
[email protected]@ -364,7 +391,7 @@
-                 continue;
-             rc2 = x->insert(x,k);
-             if (rc2) {
--                snmp_log(LOG_ERR,"error on subcontainer '%s' insert (%d)\n",
-+                snmp_log(LOG_DEBUG,"error on subcontainer '%s' insert (%d)\n",
-                          x->container_name ? x->container_name : "", rc2);
-                 rc = rc2;
-             }
[email protected]@ -402,6 +429,22 @@
-      * container.c. If you change one, change them both.
-      */
-     NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */
-+    netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx,
-+    		u_int flags)
-+    {
-+      if (NULL == x->duplicate) {
-+    	snmp_log(LOG_ERR, "container '%s' does not support duplicate\n",
-+    		x->container_name ? x->container_name : "");
-+    	return NULL;
-+      }
-+      return x->duplicate(x, ctx, flags);
-+    }
-+
-+    /*------------------------------------------------------------------
-+     * These functions should EXACTLY match the function version in
-+     * container.c. If you change one, change them both.
-+     */
-+    NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */ 
-     int CONTAINER_FREE(netsnmp_container *x)
-     {
- 	int  rc2, rc = 0;
[email protected]@ -474,6 +517,10 @@
-     }
- 
- #endif
-+
-+    /** Duplicate container meta-data. */
-+    int netsnmp_container_data_dup(netsnmp_container *dup,
-+    	netsnmp_container *c); 
-     
-     /*************************************************************************
-      *
---- net-snmp/snmplib/container_binary_array.c	Wed Aug 23 21:23:22 2006
-+++ net-snmp/snmplib/container_binary_array.c	Fri Jan 14 17:35:37 2011
[email protected]@ -36,7 +36,6 @@
- typedef struct binary_array_table_s {
-     size_t                     max_size;   /* Size of the current data table */
-     size_t                     count;      /* Index of the next free entry */
--    u_int                      flags;      /* flags */
-     int                        dirty;
-     int                        data_size;  /* Size of an individual entry */
-     void                     **data;       /* The table itself */
[email protected]@ -99,7 +98,7 @@
-     netsnmp_assert(t!=NULL);
-     netsnmp_assert(c->compare!=NULL);
- 
--    if (t->flags & CONTAINER_KEY_UNSORTED)
-+    if (c->flags & CONTAINER_KEY_UNSORTED)
-         return 0;
- 
-     if (t->dirty) {
[email protected]@ -204,11 +203,16 @@
- int
- netsnmp_binary_array_options_set(netsnmp_container *c, int set, u_int flags)
- {
--    binary_array_table *t = (binary_array_table*)c->container_data;
--    if (set)
--        t->flags = flags;
-+#define BA_FLAGS (CONTAINER_KEY_ALLOW_DUPLICATES|CONTAINER_KEY_UNSORTED)
-+
-+    if (set) {
-+    	if ((flags & BA_FLAGS) == flags)
-+    		c->flags = flags;
-+    	else
-+    		flags = (u_int)-1; /* unsupported flag */
-+    }
-     else
--        return ((t->flags & flags) == flags);
-+    	return ((c->flags & flags) == flags); 
-     return flags;
- }
- 
[email protected]@ -371,7 +375,7 @@
-     /*
-      * check for duplicates
-      */
--    if (! (t->flags & CONTAINER_KEY_ALLOW_DUPLICATES)) {
-+    if (! (c->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"));
[email protected]@ -579,6 +583,56 @@
-     return va;
- }
- 
-+static netsnmp_container *
-+_ba_duplicate(netsnmp_container *c, void *ctx, u_int flags)
-+{
-+    netsnmp_container *dup;
-+    binary_array_table *dupt, *t;
-+
-+    if (flags) {
-+        snmp_log(LOG_ERR, "binary arry duplicate does not supprt flags yet\n");
-+        return NULL;
-+    }
-+
-+    dup = netsnmp_container_get_binary_array();
-+    if (NULL == dup) {
-+        snmp_log(LOG_ERR," no memory for binary array duplicate\n");
-+        return NULL;
-+    }
-+    /*
-+     * deal with container stuff
-+     */
-+    if (netsnmp_container_data_dup(dup, c) != 0) {
-+        netsnmp_binary_array_release(dup);
-+        return NULL;
-+    }
-+
-+    /*
-+     * deal with data
-+     */
-+    dupt = (binary_array_table*)dup->container_data;
-+    t = (binary_array_table*)c->container_data;
-+
-+    dupt->max_size = t->max_size;
-+    dupt->count = t->count;
-+    dupt->dirty = t->dirty;
-+    dupt->data_size = t->data_size;
-+
-+    /*
-+     * shallow copy
-+     */
-+    dupt->data = (void**) calloc(dupt->max_size, dupt->data_size);
-+    if (NULL == dupt->data) {
-+        snmp_log(LOG_ERR, "no memory for binary array duplicate\n");
-+        netsnmp_binary_array_release(dup);
-+        return NULL;
-+    }
-+
-+    memcpy(dupt->data, t->data, dupt->max_size * dupt->data_size);
-+    
-+    return dup;
-+}
-+
- netsnmp_container *
- netsnmp_container_get_binary_array(void)
- {
[email protected]@ -592,7 +646,11 @@
-     }
- 
-     c->container_data = netsnmp_binary_array_initialize();
--        
-+
-+    /*
-+     * NOTE: CHANGES HERE MUST BE DUPLICATED IN duplicate AS WELL!!
-+     */
-+
-     c->get_size = _ba_size;
-     c->init = NULL;
-     c->cfree = _ba_free;
[email protected]@ -604,6 +662,7 @@
-     c->get_iterator = _ba_iterator_get;
-     c->for_each = _ba_for_each;
-     c->clear = _ba_clear;
-+    c->duplicate = _ba_duplicate;
-         
-     return c;
- }
---- net-snmp/snmplib/container.c	Fri Aug 25 15:11:06 2006
-+++ net-snmp/snmplib/container.c	Fri Jan 14 17:35:37 2011
[email protected]@ -278,7 +278,7 @@
-             continue;
-         rc2 = x->insert(x,k);
-         if (rc2) {
--            snmp_log(LOG_ERR,"error on subcontainer '%s' insert (%d)\n",
-+            snmp_log(LOG_DEBUG,"error on subcontainer '%s' insert (%d)\n",
-                      x->container_name ? x->container_name : "", rc2);
-             rc = rc2;
-         }
[email protected]@ -311,6 +311,20 @@
- }
- 
- /*------------------------------------------------------------------
-+ * These functions should EXACTLY match the function version in
-+ * container.c. If you change one, change them both.
-+ */
-+netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx, u_int flags)
-+{
-+    if (NULL == x->duplicate) {
-+        snmp_log(LOG_ERR, "container '%s' does not support duplicate\n",
-+                 x->container_name ? x->container_name : "");
-+        return NULL;
-+    }
-+    return x->duplicate(x, ctx, flags);
-+}
-+
-+/*------------------------------------------------------------------
-  * These functions should EXACTLY match the inline version in
-  * container.h. If you change one, change them both.
-  */
[email protected]@ -408,6 +422,24 @@
-     c->find = fnd;
- }
- 
-+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->sync = c->sync;
-+    dup->flags = c->flags;
-+
-+    return 0;
-+}
-+
- /*------------------------------------------------------------------
-  *
-  * simple comparison routines
--- a/components/net-snmp/patches/021.7046749.snmp_api.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
---- net-snmp/snmplib/snmp_api.c	Fri Nov 11 12:36:16 2011
-+++ net-snmp/snmplib/snmp_api.c	Fri Nov 11 12:35:36 2011
[email protected]@ -419,7 +419,7 @@
-     if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_16BIT_IDS))
-         return (retVal & 0x7fff);	/* mask to 15 bits */
-     else
--        return retVal;
-+        return (retVal & 0x7fffffff);  /* mask to 31 bits */
- }
- 
- long
[email protected]@ -435,7 +435,7 @@
-     if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_16BIT_IDS))
-         return (retVal & 0x7fff);	/* mask to 15 bits */
-     else
--        return retVal;
-+        return (retVal & 0x7fffffff);  /* mask to 31 bits */
- }
- 
- long
[email protected]@ -451,7 +451,7 @@
-     if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_16BIT_IDS))
-         return (retVal & 0x7fff);	/* mask to 15 bits */
-     else
--        return retVal;
-+        return (retVal & 0x7fffffff);  /* mask to 31 bits */
- }
- 
- long
[email protected]@ -467,7 +467,7 @@
-     if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_16BIT_IDS))
-         return (retVal & 0x7fff);	/* mask to 15 bits */
-     else
--        return retVal;
-+        return (retVal & 0x7fffffff);  /* mask to 31 bits */
- }
- 
- void
--- a/components/net-snmp/patches/025.7162956.util_funcs.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
---- a/agent/mibgroup/util_funcs.c	2007-01-11 23:13:56.000000000 +0100
-+++ b/agent/mibgroup/util_funcs.c	2012-06-01 13:20:07.243670066 +0200
[email protected]@ -254,7 +254,7 @@
- #if HAVE_EXECV
-     char            cachefile[STRMAX];
-     char            cache[NETSNMP_MAXCACHESIZE];
--    ssize_t         cachebytes;
-+    int             cachebytes;
-     int             cfd;
- #ifdef NETSNMP_EXCACHETIME
-     long            curtime;
--- a/components/net-snmp/patches/026.7186501.cpu_kstat.patch	Tue May 14 22:57:32 2013 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
---- net-snmp-5.4.1/agent/mibgroup/hardware/cpu/cpu_kstat.c	Thu Oct  5 08:53:42 2006
-+++ net-snmp-5.4.1.mod/agent/mibgroup/hardware/cpu/cpu_kstat.c	Thu Mar 29 07:57:19 2012
[email protected]@ -103,6 +103,8 @@
-         if (strcmp(ksp->ks_module, "cpu_stat") == 0) {
-             i    = ksp->ks_instance;
-             cpu2 = netsnmp_cpu_get_byIdx( i, 0 );
-+            if ( !cpu2 )
-+                    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)) {
--- a/components/net-snmp/patches/027.7118090.hr_filesys.patch	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/patches/027.7118090.hr_filesys.patch	Tue May 14 22:57:32 2013 -0700
@@ -1,4 +1,9 @@
 /*
+ *  Version 2 - Modified the patch file to make it work for the newer
+ *  revision in net-snmp 5.7.2. Some fragments of the patch had gone
+ *  into the community net-snmp source. So this patch file has been
+ *  updated with the correct diffs.
+ *
  *  This patch fixes the performance issue observed while retrieving the
  *  hrStorage parameters in systems with large number of mountpoints
  *  parameters using snmpwalk.
@@ -8,19 +13,20 @@
  *  Get_Next_HR_FileSys() function.
  *
  *  We see that in the Get_Next_HR_FileSys() function, inorder to access
- *  the last mountpoint, the /etc/mnttab is opened and we walk through
- *  all the mnttab entries for all filesystems till the end. This is the
- *  reason we find a large number of the MNTIOC_GETMNTENT ioctl() calls.
+ *  the last mountpoint, the /etc/mnttab is opened and we walk through 
+ *  all the mnttab entries for all filesystems till the end. This is the 
+ *  reason we find a large number of the MNTIOC_GETMNTENT ioctl() calls.  
  *
  *  To reduce the overhead of the getmntent() calls, we maintain a cache
- *  of all the /etc/mnttab entries and walk through the cache instead of
+ *  of all the /etc/mnttab entries and walk through the cache instead of 
  *  opening /etc/mnttab and walking all the entries for each mountpoint.
  *  This functionality is provided by the load_mnttab_cache_solaris()
  *  function called from the Init_HR_FileSys() function.
  */
---- net-snmp-5.4.1.orig/agent/mibgroup/host/hr_filesys.c	2007-05-18 11:08:01.000000000 -0700
-+++ net-snmp-5.4.1/agent/mibgroup/host/hr_filesys.c	2013-01-17 03:36:28.181493003 -0800
[email protected]@ -31,6 +31,10 @@
+
+--- net-snmp/agent/mibgroup/host/hr_filesys.c	Sun Dec 30 22:37:05 2012
++++ net-snmp/agent/mibgroup/host/hr_filesys.c	Mon Dec 31 00:55:29 2012
[email protected]@ -46,6 +46,10 @@
  #include <sys/mount.h>
  #endif
  
@@ -31,7 +37,7 @@
  #include <ctype.h>
  #if HAVE_STRING_H
  #include <string.h>
[email protected]@ -85,7 +89,11 @@
[email protected]@ -108,7 +112,11 @@
  #ifdef solaris2
  
  struct mnttab   HRFS_entry_struct;
@@ -39,155 +45,86 @@
 +struct mnttab  *HRFS_entry;
 +struct mnttab	*HRFS_list;
 +static int fscount;
-+static time_t last_access = -1;
++static time_t last_access=-1;
 +
  #define	HRFS_name	mnt_special
  #define	HRFS_mount	mnt_mountp
  #define	HRFS_type	mnt_fstype
[email protected]@ -167,6 +175,9 @@
- static u_char  *when_dumped(char *filesys, int level, size_t * length);
- int             header_hrfilesys(struct variable *, oid *, size_t *, int,
-                                  size_t *, WriteMethod **);
[email protected]@ -619,6 +627,12 @@
+ void
+ Init_HR_FileSys(void)
+ {
 +#ifdef solaris2
-+static int      load_mnttab_cache_solaris(void);
++	char buf[512]={NULL};
++	int lines=0, i=0;
++	struct stat file_stat;
 +#endif
- 
-         /*********************
- 	 *
[email protected]@ -606,8 +617,14 @@
++
+ #if HAVE_GETFSSTAT
+ #if defined(HAVE_STATVFS) && defined(__NetBSD__)
+     fscount = getvfsstat(NULL, 0, ST_NOWAIT);
[email protected]@ -662,7 +676,59 @@
      HRFS_index = 1;
      if (fp != NULL)
          fclose(fp);
+-    fp = fopen(ETC_MNTTAB, "r");
 +#ifdef solaris2
-+    if(!load_mnttab_cache_solaris())
-+        return;
-+#else    
-     fp = fopen(ETC_MNTTAB, "r");
- #endif
-+
-+#endif
- }
- 
- const char     *HRFS_ignores[] = {
[email protected]@ -663,6 +680,117 @@
-     0
- };
- 
-+#ifdef solaris2
-+
-+/*
-+ *  This function has been introduced to reduce the overhead
-+ *  of the getmntent() calls used to fetch the details of
-+ *  the /etc/mnttab entries in Init_HR_FileSys().
-+ *
-+ *  We maintain a cache of all the /etc/mnttab entries and
-+ *  walk through the cache instead of opening /etc/mnttab and
-+ *  walking all the entries for each mountpoint.
-+ */
++	HRFS_index = 0;
++	stat(ETC_MNTTAB, &file_stat);
++	if (last_access == -1 || last_access != file_stat.st_mtime) { 
++    		fp = fopen(ETC_MNTTAB, "r");
++		if(fp == NULL)
++		{
++			DEBUGMSGTL(("host/hr_filesys", "fopen failed for mnttab.\n"));
++			return;
++		}
 +
-+static int 
-+load_mnttab_cache_solaris()
-+{
-+    char buf[512] = {NULL};
-+    int i = 0;
-+    struct stat file_stat;
-+    const char **cpp;
-+    char *ch;
-+    int token_flag = 0;
-+    int skip_flag = 0;
-+    int ignore_flag = 0;
-+    int j = 0;
-+    int lines = 0;
-+    int ret = 0;
-+    HRFS_index = 0;
-+
-+    stat(ETC_MNTTAB, &file_stat);
-+    if (last_access == -1 || last_access != file_stat.st_mtime) {
-+        fp = fopen(ETC_MNTTAB, "r");
-+        if(fp == NULL)
-+        {
-+            DEBUGMSGTL(("host/hr_filesys", "fopen failed for mnttab.\n"));
-+            return -1;
-+        }
-+        
-+        /* find the number of valid entries in mnttab. */
-+        
-+        while ((fgets((char *) &buf, sizeof(buf), fp)) != NULL) {
-+            j = 0;
-+            skip_flag = 0;
-+            token_flag = 0;
++		while ( (fgets((char *)&buf,sizeof(buf),fp)) != NULL) {
++			lines++;
++		}	
++		fclose(fp);
++	
++		HRFS_list = (struct mnttab *) malloc (sizeof(struct mnttab) * lines);
++		
++		if(HRFS_list == NULL)
++		{
++			DEBUGMSGTL(("host/hr_filesys", "Memory allocation for mnttab cache failed.\n"));
++			return;
++		}				
 +
-+            /* tokenize the mnttab entries to fetch the fstype
-+             * which determines the valid entries.
-+             */
-+
-+            ch = strtok(buf, " \t");
-+            while (ch != NULL) {
-+                j++;
-+                if(j == 3) {
-+                    for (cpp = HRFS_ignores; *cpp != NULL; ++cpp) {
-+                        if(!strncmp(ch, *cpp, strlen(ch))) {
-+                            skip_flag = 1;
-+                            break;
-+                        }
-+                    }
-+                    token_flag = 1;
++    		fp = fopen(ETC_MNTTAB, "r");
++		
++		if(fp == NULL)
++                {
++			DEBUGMSGTL(("host/hr_filesys", "fopen failed for mnttab.\n"));
++			free(HRFS_list);
++			return;
 +                }
-+                if(token_flag)
-+                    break;
-+                ch = strtok(NULL, " \t");
-+             }
-+             if(!skip_flag)
-+                 lines++;
-+        }
-+        fclose(fp);
-+
-+        fscount = lines;
-+        HRFS_list = (struct mnttab *) malloc (sizeof(struct mnttab) * fscount);
-+        if(HRFS_list == NULL) {
-+            DEBUGMSGTL(("host/hr_filesys", "Memory allocation for mnttab cache failed.\n"));
-+            return -1;
-+        }
 +
-+        fp = fopen(ETC_MNTTAB, "r");
-+        if(fp == NULL) {
-+            DEBUGMSGTL(("host/hr_filesys", "fopen failed for mnttab.\n"));
-+            free(HRFS_list);
-+            return -1;
-+        }
-+
-+        while (i < fscount) {
-+            if (getmntent(fp, &HRFS_entry_struct) == 0) {
-+                 for (cpp = HRFS_ignores; *cpp != NULL; ++cpp) {
-+                     if (!strcmp(HRFS_entry_struct.HRFS_type, *cpp)) {
-+                         ignore_flag = 1;
-+                         break;
-+                     }
-+                 }
-+
-+                 if(!ignore_flag) {
-+                     HRFS_list[i].mnt_special = strdup(HRFS_entry_struct.mnt_special);
-+                     HRFS_list[i].mnt_mountp = strdup(HRFS_entry_struct.mnt_mountp);
-+                     HRFS_list[i].mnt_fstype = strdup(HRFS_entry_struct.mnt_fstype);
-+                     HRFS_list[i].mnt_mntopts = strdup(HRFS_entry_struct.mnt_mntopts);
-+                     i++;
-+                 }
-+
-+                 ignore_flag = 0;
-+            }
-+        }
-+
-+        HRFS_entry = HRFS_list;
-+        last_access = file_stat.st_mtime;
-+    }
-+    return ret;
-+}
++		fscount = lines;
++		while (i < fscount)
++    		{
++			if (getmntent(fp, &HRFS_entry_struct) == 0)
++        		{
++				HRFS_list[i].mnt_special = strdup(HRFS_entry_struct.mnt_special);
++				HRFS_list[i].mnt_mountp = strdup(HRFS_entry_struct.mnt_mountp);
++				HRFS_list[i].mnt_fstype = strdup(HRFS_entry_struct.mnt_fstype);
++				HRFS_list[i].mnt_mntopts = strdup(HRFS_entry_struct.mnt_mntopts);
++        			i++;
++        		}
++    		}
++	
++		HRFS_entry = HRFS_list;
++		last_access = file_stat.st_mtime;
++	}
++#else    
++	fp = fopen(ETC_MNTTAB, "r");
 +#endif
 +
- int
- Get_Next_HR_FileSys(void)
- {
[email protected]@ -699,17 +827,18 @@
+     if (!fp) {
+       netsnmp_config_error("Can't open mnttab %s\n", ETC_MNTTAB);
+     }
[email protected]@ -758,17 +824,20 @@
  #else
      const char    **cpp;
  
@@ -196,13 +133,16 @@
  
  #ifdef solaris2
 -    if (getmntent(fp, HRFS_entry) != 0)
-+    if (HRFS_index >= fscount)
-         return -1;
-+    HRFS_entry = &HRFS_list[HRFS_index];
-+        return ++HRFS_index;
+-        return -1;
++
++	if (HRFS_index >= fscount)
++		return -1;
++	HRFS_entry = &HRFS_list[HRFS_index];
++		return ++HRFS_index;
++
  #else
-+    if (fp == NULL)
-+        return -1;
++	if (fp == NULL)
++                return -1;
      HRFS_entry = getmntent(fp);
      if (HRFS_entry == NULL)
          return -1;
@@ -210,7 +150,7 @@
  
      for (cpp = HRFS_ignores; *cpp != NULL; ++cpp)
          if (!strcmp(HRFS_entry->HRFS_type, *cpp))
[email protected]@ -728,6 +857,8 @@
[email protected]@ -787,6 +856,8 @@
      }
  
      return HRFS_index++;
@@ -219,28 +159,28 @@
  #endif                          /* HAVE_GETFSSTAT */
  }
  
[email protected]@ -791,9 +922,24 @@
[email protected]@ -854,10 +925,24 @@
          HRFS_entry = NULL;
      }
  #else
-+    int i = 0;
++    int i=0;
      if (fp != NULL)
          fclose(fp);
      fp = NULL;
 +
 +#ifdef solaris2
-+while (i < fscount) {
-+    free(HRFS_list[i].mnt_special);
-+    free(HRFS_list[i].mnt_mountp);
-+    free(HRFS_list[i].mnt_fstype);
-+    free(HRFS_list[i].mnt_mntopts);
-+    i++;
-+}
-+    if (HRFS_list != NULL)
-+        free(HRFS_list);
-+    last_access = -1;
++	while (i < fscount) {
++		free(HRFS_list[i].mnt_special);
++		free(HRFS_list[i].mnt_mountp);
++		free(HRFS_list[i].mnt_fstype);
++		free(HRFS_list[i].mnt_mntopts);
++		i++;
++	}
++	if (HRFS_list != NULL)
++		free(HRFS_list);
+ #endif
++
 +#endif
-+
- #endif
  }
  
+ 
--- a/components/net-snmp/patches/029.7097655.ipAddressTable_container.patch	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/patches/029.7097655.ipAddressTable_container.patch	Tue May 14 22:57:32 2013 -0700
@@ -1,457 +1,24 @@
-diff -ur net-snmp-5.4.1.org/agent/helpers/table_tdata.c net-snmp-5.4.1.container/agent/helpers/table_tdata.c
---- net-snmp-5.4.1.org/agent/helpers/table_tdata.c	2012-04-02 01:31:08.387259100 -0700
-+++ net-snmp-5.4.1.container/agent/helpers/table_tdata.c	2012-04-02 01:58:23.019636200 -0700
[email protected]@ -57,9 +57,18 @@
-     if ( !table )
-         return NULL;
- 
-+    table->flags = flags;
-     if (name)
-         table->name = strdup(name);
--    table->container = netsnmp_container_find( "table_container" );
-+
-+    if (!(table->flags & TDATA_FLAG_NO_CONTAINER)) {
-+        table->container = netsnmp_container_find( name );
-+        if (!table->container)
-+            table->container = netsnmp_container_find( "table_container" );
-+        if (table->container)
-+            table->container->container_name = strdup(name);
-+    }
-+
-     return table;
- }
- 
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-forward-mib/data_access/route_common.c net-snmp-5.4.1.container/agent/mibgroup/ip-forward-mib/data_access/route_common.c
---- net-snmp-5.4.1.org/agent/mibgroup/ip-forward-mib/data_access/route_common.c	2012-04-02 01:31:08.334343300 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-forward-mib/data_access/route_common.c	2012-04-02 02:00:46.671129800 -0700
[email protected]@ -47,8 +47,11 @@
- 
-     DEBUGMSGTL(("access:route:container", "load\n"));
- 
--    if (NULL == container)
-+    if (NULL == container) {
-         container = netsnmp_container_find("access:_route:table_container");
-+        if (container)
-+            container->container_name = strdup("_route");
-+    }
-     if (NULL == container) {
-         snmp_log(LOG_ERR, "no container specified/found for access_route\n");
-         return NULL;
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c net-snmp-5.4.1.container/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
---- net-snmp-5.4.1.org/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c	2012-04-02 01:31:08.341048100 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c	2012-04-02 02:05:22.940847300 -0700
[email protected]@ -2307,9 +2307,12 @@
-     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)
-+            if_ctx->container->container_name = strdup("inetCidrRouteTable");
-+    }
-     if (NULL == if_ctx->container) {
-         snmp_log(LOG_ERR, "error creating container in "
-                  "inetCidrRouteTable_container_init\n");
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c net-snmp-5.4.1.container/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
---- net-snmp-5.4.1.org/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c	2012-04-02 01:31:08.337647600 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c	2012-04-02 02:08:16.825508200 -0700
[email protected]@ -2259,9 +2259,12 @@
-     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)
-+            if_ctx->container->container_name = strdup("ipCidrRouteTable");
-+    }
-     if (NULL == if_ctx->container) {
-         snmp_log(LOG_ERR, "error creating container in "
-                  "ipCidrRouteTable_container_init\n");
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-mib/data_access/arp_common.c net-snmp-5.4.1.container/agent/mibgroup/ip-mib/data_access/arp_common.c
---- net-snmp-5.4.1.org/agent/mibgroup/ip-mib/data_access/arp_common.c	2012-04-02 01:31:08.353034100 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-mib/data_access/arp_common.c	2012-04-02 02:10:39.120984300 -0700
[email protected]@ -62,8 +62,11 @@
- 
-     DEBUGMSGTL(("access:arp:container", "load\n"));
- 
--    if (NULL == container)
-+    if (NULL == container) {
-         container = netsnmp_container_find("access:arp:table_container");
-+        if (container)
-+            container->container_name = strdup("arp");
-+    }
-     if (NULL == container) {
-         snmp_log(LOG_ERR, "no container specified/found for access_arp\n");
-         return NULL;
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-mib/data_access/systemstats_common.c net-snmp-5.4.1.container/agent/mibgroup/ip-mib/data_access/systemstats_common.c
---- net-snmp-5.4.1.org/agent/mibgroup/ip-mib/data_access/systemstats_common.c	2012-04-02 01:31:08.353793700 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-mib/data_access/systemstats_common.c	2012-04-02 02:12:30.680237000 -0700
[email protected]@ -96,8 +96,11 @@
- 
-     DEBUGMSGTL(("access:systemstats:container", "load\n"));
- 
--    if (NULL == container)
-+    if (NULL == container) {
-         container = netsnmp_access_systemstats_container_init(load_flags);
-+        if (NULL != container)
-+             container->container_name = strdup("systemstats_autocreate");
-+    }
-     if (NULL == container) {
-         snmp_log(LOG_ERR, "no container specified/found for access_systemstats\n");
-         return NULL;
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c net-snmp-5.4.1.container/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
---- net-snmp-5.4.1.org/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c	2012-04-02 01:31:08.349583400 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c	2012-04-02 02:13:41.237688000 -0700
[email protected]@ -1935,9 +1935,12 @@
-     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
- 
-     inetNetToMediaTable_container_init(&if_ctx->container, if_ctx->cache);
--    if (NULL == if_ctx->container)
-+    if (NULL == if_ctx->container) {
-         if_ctx->container =
-             netsnmp_container_find("inetNetToMediaTable:table_container");
-+        if (if_ctx->container)
-+            if_ctx->container->container_name = strdup("inetNetToMediaTable");
-+    }
-     if (NULL == if_ctx->container) {
-         snmp_log(LOG_ERR, "error creating container in "
-                  "inetNetToMediaTable_container_init\n");
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c net-snmp-5.4.1.container/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c
---- net-snmp-5.4.1.org/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c	2012-04-02 01:31:08.365565600 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c	2012-04-02 03:44:15.669526200 -0700
[email protected]@ -1251,15 +1251,18 @@
-      * container init
-      */
-     ipv4InterfaceTable_container_init(&if_ctx->container);
--    if (NULL == if_ctx->container)
-+    if (NULL == if_ctx->container) 
-         if_ctx->container =
-             netsnmp_container_find("ipv4InterfaceTable:table_container");
-+
-     if (NULL == if_ctx->container) {
-         snmp_log(LOG_ERR, "error creating container in "
-                  "ipv4InterfaceTable_container_init\n");
-         return;
-     }
- 
-+    if_ctx->container->container_name = strdup("ipv4InterfaceTable");
-+
- }                               /* _ipv4InterfaceTable_container_init */
- 
- /**
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c net-snmp-5.4.1.container/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c
---- net-snmp-5.4.1.org/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c	2012-04-02 01:31:08.363180800 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c	2012-04-02 03:45:04.295800900 -0700
[email protected]@ -1341,6 +1341,7 @@
-                  "ipv6InterfaceTable_container_init\n");
-         return;
-     }
-+    if_ctx->container->container_name = strdup("ipv6InterfaceTable");
- 
- }                               /* _ipv6InterfaceTable_container_init */
- 
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c net-snmp-5.4.1.container/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c
---- net-snmp-5.4.1.org/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c	2012-04-02 01:31:08.199286300 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c	2012-04-02 03:47:50.113861500 -0700
[email protected]@ -1731,9 +1731,12 @@
-     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
- 
-     tcpConnectionTable_container_init(&if_ctx->container, if_ctx->cache);
--    if (NULL == if_ctx->container)
-+    if (NULL == if_ctx->container) {
-         if_ctx->container =
-             netsnmp_container_find("tcpConnectionTable:table_container");
-+        if (if_ctx->container)
-+            if_ctx->container->container_name = strdup("tcpConnectionTable");
-+    }
-     if (NULL == if_ctx->container) {
-         snmp_log(LOG_ERR, "error creating container in "
-                  "tcpConnectionTable_container_init\n");
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c net-snmp-5.4.1.container/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c
---- net-snmp-5.4.1.org/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c	2012-04-02 01:31:08.201001900 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c	2012-04-02 03:48:52.542497400 -0700
[email protected]@ -922,9 +922,12 @@
-     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
- 
-     tcpListenerTable_container_init(&if_ctx->container, if_ctx->cache);
--    if (NULL == if_ctx->container)
-+    if (NULL == if_ctx->container) {
-         if_ctx->container =
-             netsnmp_container_find("tcpListenerTable:table_container");
-+        if (if_ctx->container)
-+            if_ctx->container->container_name = strdup("tcpListenerTable");
-+    }
-     if (NULL == if_ctx->container) {
-         snmp_log(LOG_ERR, "error creating container in "
-                  "tcpListenerTable_container_init\n");
-diff -ur net-snmp-5.4.1.org/include/net-snmp/agent/table_tdata.h net-snmp-5.4.1.container/include/net-snmp/agent/table_tdata.h
---- net-snmp-5.4.1.org/include/net-snmp/agent/table_tdata.h	2012-04-02 01:31:08.444022500 -0700
-+++ net-snmp-5.4.1.container/include/net-snmp/agent/table_tdata.h	2012-04-02 23:50:13.830827600 -0700
[email protected]@ -21,6 +21,7 @@
- #define TABLE_TDATA_TABLE "table_tdata_table"
- 
- #define TDATA_FLAG_NO_STORE_INDEXES   0x01
-+#define TDATA_FLAG_NO_CONTAINER       0x02    /* user will provide container */
- 
-     /*
-      * The (table-independent) per-row data structure
-diff -ur net-snmp-5.4.1.org/include/net-snmp/library/container.h net-snmp-5.4.1.container/include/net-snmp/library/container.h
---- net-snmp-5.4.1.orig/include/net-snmp/library/container.h	2012-09-13 03:44:03.378177029 -0700
-+++ net-snmp-5.4.1.container/include/net-snmp/library/container.h	2012-09-05 12:05:44.822831595 -0700
[email protected]@ -373,31 +373,42 @@
-      */
-     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(netsnmp_container *x, const void *k)
--    {
--        int rc2, rc = 0;
--        
--        /** start at first container */
--        while(x->prev)
--            x = x->prev;
--        for(; x; x = x->next) {
--            if ((NULL != x->insert_filter) &&
--                (x->insert_filter(x,k) == 1))
--                continue;
--            rc2 = x->insert(x,k);
--            if (rc2) {
--                snmp_log(LOG_DEBUG,"error on subcontainer '%s' insert (%d)\n",
--                         x->container_name ? x->container_name : "", rc2);
--                rc = rc2;
--            }
--        }
--        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_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_ERR,"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
-diff -ur net-snmp-5.4.1.org/snmplib/container.c net-snmp-5.4.1.container/snmplib/container.c
---- net-snmp-5.4.1/snmplib/container.c	2012-09-13 03:44:03.380247622 -0700
-+++ net-snmp-5.4.1.container/snmplib/container.c	2012-09-13 03:33:19.759881202 -0700
[email protected]@ -49,7 +49,8 @@
-      */
-     containers = netsnmp_container_get_binary_array();
-     containers->compare = netsnmp_compare_cstring;
--
-+    containers->container_name = strdup("container list");
-+	
-     /*
-      * register containers
-      */
[email protected]@ -265,25 +266,34 @@
-  * These functions should EXACTLY match the inline version in
-  * container.h. If you change one, change them both.
-  */
--int CONTAINER_INSERT(netsnmp_container *x, const void *k)
--{ 
--    int rc2, rc = 0;
--    
--    /** start at first container */
-+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 inline version in
-+ * container.h. If you change one, change them both.
-+ */
-+int CONTAINER_INSERT(netsnmp_container* x, const void* k)
-+{
-     while(x->prev)
--        x = x->prev;
--    for(; x; x = x->next) {
--        if ((NULL != x->insert_filter) &&
--            (x->insert_filter(x,k) == 1))
--            continue;
--        rc2 = x->insert(x,k);
--        if (rc2) {
--            snmp_log(LOG_DEBUG,"error on subcontainer '%s' insert (%d)\n",
--                     x->container_name ? x->container_name : "", rc2);
--            rc = rc2;
--        }
--    }
--    return rc;
-+         x = x->prev;
-+     return CONTAINER_INSERT_HELPER(x, k);
- }
- 
- /*------------------------------------------------------------------
-diff -ur net-snmp-5.4.1.org/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c net-snmp-5.4.1.container/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c
---- net-snmp-5.4.1.orig/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c	2007-05-17 14:53:28.000000000 -0700
-+++ net-snmp-5.4.1.container/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c	2012-09-13 03:45:25.253102053 -0700
[email protected]@ -134,6 +134,7 @@
-     *container_ptr_ptr =
-         netsnmp_container_find("ipAddressTable:table_container");
-     if (NULL != *container_ptr_ptr) {
-+        (*container_ptr_ptr)->container_name = strdup("ipAddressTable"); 
-         ipAddressTable_container_load(*container_ptr_ptr);
-         CONTAINER_FOR_EACH(*container_ptr_ptr,
-                            (netsnmp_container_obj_func *) _clear_times,
[email protected]@ -344,56 +345,58 @@
+#
+# netsnmp_access_ipaddress_container_load() can return NULL.
+# ipaddressTable_container_load() should check for the validity
+# of return value before accessing it or else it causes SEGV.
+#
+--- net-snmp-5.7.2/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c	Wed Jan 30 02:01:56 2013
++++ net-snmp-5.7.2/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c	Wed Jan 30 02:04:46 2013
[email protected]@ -348,6 +348,8 @@
       * what we've already got, and make any adjustments, saving
       * missing addresses to be deleted.
       */
--    tmp_ptr[0] = ipaddress_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(ipaddress_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_ipaddress_container_free(ipaddress_container,
--                                            NETSNMP_ACCESS_IPADDRESS_FREE_DONT_CLEAR);
--
--    /*
--     * remove deleted addresses from table container
--     */
--    if (NULL != tmp_ptr[1]) {
--        netsnmp_container *tmp_container =
--            (netsnmp_container *) tmp_ptr[1];
--        ipAddressTable_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);
--            ipAddressTable_release_rowreq_ctx(tmp_ctx);
--
--            /*
--             * pop off delete list
--             */
--            CONTAINER_REMOVE(tmp_container, NULL);
--        }
 +    if(ipaddress_container != NULL)
 +    {
-+    	tmp_ptr[0] = ipaddress_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(ipaddress_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_ipaddress_container_free(ipaddress_container,
-+                                                NETSNMP_ACCESS_IPADDRESS_FREE_DONT_CLEAR);
-+
-+    	/*
-+     	 * remove deleted addresses from table container
-+     	 */
-+    	if (NULL != tmp_ptr[1]) {
-+        	netsnmp_container *tmp_container =
-+            	    (netsnmp_container *) tmp_ptr[1];
-+        	ipAddressTable_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);
-+            	ipAddressTable_release_rowreq_ctx(tmp_ctx);
-+
-+            	/*
-+             	 * pop off delete list
-+              	 */
-+            	CONTAINER_REMOVE(tmp_container, NULL);
-+        	}
-+    	}
+     tmp_ptr[0] = ipaddress_container->next;
+     tmp_ptr[1] = NULL;
+     CONTAINER_FOR_EACH(container, (netsnmp_container_obj_func *)
[email protected]@ -395,6 +397,7 @@
+              * pop off delete list
+              */
+             CONTAINER_REMOVE(tmp_container, NULL);
++            }
+         }
      }
--
-     DEBUGMSGT(("verbose:ipAddressTable:ipAddressTable_cache_load",
-                "%d records\n", CONTAINER_SIZE(container)));
  
--- a/components/net-snmp/resolve.deps	Tue May 14 22:57:32 2013 -0700
+++ b/components/net-snmp/resolve.deps	Tue May 14 22:57:32 2013 -0700
@@ -5,6 +5,7 @@
 shell/ksh93
 system/core-os
 system/library
+system/library/math
 system/linker
 system/management/snmp/net-snmp
 system/network