--- 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/net-snmp-26@$(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/net-snmp-27@$(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/addons@$(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/net-snmp-26@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
predicate=runtime/python-26 \
@@ -534,4 +584,4 @@
depend fmri=library/python-2/net-snmp-27@$(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
-@@ -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;
-@@ -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)
-@@ -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)
-@@ -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)
-@@ -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)
-@@ -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)
-@@ -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)
-@@ -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)
-@@ -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)
-@@ -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)
-@@ -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)
-@@ -45,6 +45,7 @@
- #include <kstat.h>
- #include <errno.h>
- #include <time.h>
-+#include <ctype.h>
-
- #include <sys/sockio.h>
- #include <sys/socket.h>
-@@ -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},
-@@ -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},
-@@ -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 */
-@@ -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)
-@@ -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)
-@@ -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);
-@@ -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)
-@@ -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)
-@@ -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);
-
-@@ -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;
-@@ -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);
-
-@@ -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.
-@@ -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
- */
-@@ -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;
- }
- }
-
-@@ -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;
-@@ -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;
-@@ -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))
-@@ -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);
-@@ -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;
-@@ -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)
-@@ -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
-
-
-
-@@ -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)
-@@ -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;
-@@ -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)
-@@ -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
-@@ -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
+@@ -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
-@@ -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
-@@ -3935,7 +3937,7 @@
+@@ -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
-@@ -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
+@@ -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
-@@ -152,6 +155,10 @@
+@@ -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
-@@ -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
+@@ -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) $@ $(LOBJS) $(AGENTLIB) $(NETSNMPLIB) $(LDFLAGS) $(LIB_LD_LIBS)
+- $(LIB_LD_CMD) $@ $(LOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) $(LIB_LD_LIBS)
- $(RANLIB) $@
-+ $(LIB_LD_CMD) $@ $(LIB_LD_ADD_PATH) $(LOBJS) $(AGENTLIB) $(NETSNMPLIB) $(LDFLAGS) $(LIB_LD_LIBS) $(LIB_LD_ADD)
++ $(LIB_LD_CMD) $@ $(LIB_LD_ADD_PATH) $(LOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) $(LIB_LD_LIBS) $(LIB_LD_ADD)
+ $(RANLIB) $@ $(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
-@@ -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
+@@ -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) @CPPFLAGS@
-
-@@ -188,8 +191,8 @@
+@@ -230,8 +233,8 @@
# how to build the libraries.
libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION): $(TOBJS)
-- $(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
+- $(LIB_LD_CMD) $@ $(TOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) @LNETSNMPLIBS@
- $(RANLIB) $@
-+ $(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@ } $(LIB_LD_ADD)
-+ $(RANLIB) $@ $(LIB_LD_ADD)
++ $(LIB_LD_CMD) $@ $(TOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) @LNETSNMPLIBS@ } $(LIB_LD_ADD)
++ $(RANLIB) $@ $(LIB_LD_ADD)
libsnmp.$(LIB_EXTENSION)$(LIB_VERSION): $(TOBJS)
- $(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
+ $(LIB_LD_CMD) $@ $(TOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) @LNETSNMPLIBS@
--- 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
-@@ -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;
- }
-
-@@ -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;
-@@ -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
-@@ -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
-@@ -339,7 +339,7 @@
- */
- if (0 == need_wrap_check) {
- SNMP_FREE(prev_vals->old_stats);
-- }
-+ } else {
-
- /*
- * update old stats from new stats.
-@@ -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
-@@ -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);
-
-@@ -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:
-@@ -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;
-@@ -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)
-
-
-@@ -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.
-@@ -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;
- }
-@@ -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;
-@@ -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
-@@ -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 */
-@@ -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) {
-@@ -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;
- }
-
-@@ -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"));
-@@ -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)
- {
-@@ -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;
-@@ -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
-@@ -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;
- }
-@@ -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.
- */
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
+@@ -46,6 +46,10 @@
#include <sys/mount.h>
#endif
@@ -31,7 +37,7 @@
#include <ctype.h>
#if HAVE_STRING_H
#include <string.h>
-@@ -85,7 +89,11 @@
+@@ -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
-@@ -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 **);
+@@ -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
-
- /*********************
- *
-@@ -606,8 +617,14 @@
++
+ #if HAVE_GETFSSTAT
+ #if defined(HAVE_STATVFS) && defined(__NetBSD__)
+ fscount = getvfsstat(NULL, 0, ST_NOWAIT);
+@@ -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[] = {
-@@ -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)
- {
-@@ -699,17 +827,18 @@
+ if (!fp) {
+ netsnmp_config_error("Can't open mnttab %s\n", ETC_MNTTAB);
+ }
+@@ -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))
-@@ -728,6 +857,8 @@
+@@ -787,6 +856,8 @@
}
return HRFS_index++;
@@ -219,28 +159,28 @@
#endif /* HAVE_GETFSSTAT */
}
-@@ -791,9 +922,24 @@
+@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -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
-@@ -49,7 +49,8 @@
- */
- containers = netsnmp_container_get_binary_array();
- containers->compare = netsnmp_compare_cstring;
--
-+ containers->container_name = strdup("container list");
-+
- /*
- * register containers
- */
-@@ -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
-@@ -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,
-@@ -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
+@@ -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 *)
+@@ -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