--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/net-snmp/patches/004.16436.patch Thu Jan 30 13:44:37 2014 -0800
@@ -0,0 +1,162 @@
+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))) {