pkgsrc/net/net-snmp/patches/patch-dl
gdt 423fbf3121 Update to 5.7.2.
This is a major update in terms of pkgsrc patches, of which there are
far far too many.  Analysis of patches was done by Karen Sirois of
BBN, and I have remvoed patches that have been applied upstream.

This builds fine and passes tests on NetBSD 6 i386.  If you look after
some other platform (Dragonfly, Darwin, FreeBSD, etc.), please make
sure any problems are filed as upstream tickets; pkgsrc is not
appropriate to carry patches long-term that should be fixed upstream,
and this package has gotten out of hand.

(OK by adam@ to do the update, but he has not reviewed the changes, so
errors are my fault.  It's quite likely there are issues on other
platforms.)

Upstream NEWS:

*5.7.2*
    snmp:
      - BUG: 3526549: CVE-2012-2141 Array index error leading to crash

    snmpd:
      - BUG: 3532090: Fix high ifIndex values crashing hrDeviceDescr

    building:
      - PATCH: 2091156: correctly declare dependencies in Makefile. 'make
        -j <N>' should work now. Backport this to V5-4 as it is needed for
        correct operation in the single threaded case of make miblib as
        well.

    Many other miscellaneous minor bug fixes

*5.7.1*

  libnetsnmp:
      - Fixed the mib-parsing-bug introduced shortly before 5.7

  agent:
      - fixed rounding errors for disk percentage calculations

  openbsd:
      - better support for recent openbsd releases

  features:
      - bug fixes with minimalist support after additional user feedback

  Many other miscellaneous minor bug fixes

*5.7*

  snmpd:
      - Delivery of data via regularily scheduled notifications.
        (see "Data Delivery via Notfications" in snmpd.conf)
      - Many time-based config options can take (m)ins, (h)ours, ... arguments
        (see the snmpd.conf manual page)
      - The PING and TRACEROUTE MIBs now compile and work-ish on linux
        http://www.net-snmp.org/wiki/index.php/DISMAN
      - Mib handlers can now implement a data_clone function for
        cloning the myvoid structure variable to avoid dangling pointers
      - Fixed persistent storage of VACM MIB configuration
      - Multi-homed agents send UDP responses from the proper IP address
      - The hrStorageTable implementation now supports large filesystems better
      - optimizations for large route tables
      - Added a deliveryByNotify config token for regular data delivery
        (see the snmpd.conf manual page and the NET-SNMP-PERIODIC-NOTIFY-MIB)
      - [PATCH 3141462]: fix agentx subagent issues with multiple-object requests
      - [PATCH 3057093]: linux uses libpci for creating useful ifDescr strings
      - [PATCH 3131397]: huge speedups of the TCP/UDP Tables

  libnetsnmp:
      - Removed the older CMU compatibility support
      - The SSH transport is now configurable

  TLS/DTLS support:
      - The SNMP over DTLS transport now properly supports IPv6
      - Introduced new configuration tokens: localCert/peerCert
        (deprecating serverCert, clientCert, defX509ServerPub, defX509ClientPub)
      - Various fixes for the TLS/DTLS transports

  apps:
      - Added a per-variable timed output support to snmpwalk using -CT
      - snmpinform now correctly uses the local engineID for informs
      - A number of mib2c bug fixes
      - New snmp.conf tokens for timeouts and retries

  building:
      - New flags to reduce the amount of compiled code to bare minimums.
        This is provided by a new generic feature marking/selection mechanism.
        http://www.net-snmp.org/wiki/index.php/Feature_Marking_and_Selection
      - It's now possible to build without SNMPv3/USM
        (e.g., if you only want TLS/DTLS with SNMPv3/TSM)
      - It's possible to build the suite with no SET support
        configure using --enable-read-only
      - It's possible to build the agent as a notify-only agent
        configure using --enable-notify-only
      - Added a script to test memory usage with various config options
        (see the local/minimalist/sizetests script)
      - Net-SNMP can now be built to perform local DNSSEC validation
        (install DNSSEC-Tools' libval and use --with-local-dnssec-validation)

  testing:
      - a number of new API unit-tests have been added to the suite
        (to run the tests: cd testing && ./RUNFULLTESTS -g unit-tests)
      - The unit tests can be more easily run under valgrind
        (See http://bit.ly/jsgRnv for details)

  openbsd:
      - Support for updating the routing table via SNMP

  win32:
      - The testing suite works better under win32 environments
      - Many building fixes for the win32 environment(s)

  solaris:
      - Net-SNMP now supports the SCTP-MIB

  DragonFlyBSD, FreeBSD8:
      - Net-SNMP should now work on DragonFlyBSD and FreeBSD8

  And of course:
      - Many other bug fixes.  See the CHANGES and ChangeLog for details.
2013-03-17 00:15:28 +00:00

97 lines
2.9 KiB
Text

$NetBSD: patch-dl,v 1.6 2013/03/17 00:15:29 gdt Exp $
--- agent/mibgroup/mibII/tcp.c.orig 2012-10-09 22:28:58.000000000 +0000
+++ agent/mibgroup/mibII/tcp.c
@@ -197,6 +197,16 @@ init_tcp(void)
#define USES_TRADITIONAL_TCPSTAT
#endif
+#ifdef TCP_NSTATS
+typedef uint32_t tcp_stats[TCP_NSTATS];
+#define TCP_STAT_STRUCTURE tcp_stats
+#endif
+
+#ifdef dragonfly
+#define TCP_STAT_STRUCTURE struct tcp_stats
+#define USES_TRADITIONAL_TCPSTAT
+#endif
+
#if !defined(TCP_STAT_STRUCTURE)
#define TCP_STAT_STRUCTURE struct tcpstat
#define USES_TRADITIONAL_TCPSTAT
@@ -324,6 +334,75 @@ tcp_handler(netsnmp_mib_handler
#endif /* linux */
netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT);
continue;
+#elif defined(TCP_NSTAT)
+ case TCPRTOALGORITHM: /* Assume Van Jacobsen's algorithm */
+ ret_value = 4;
+ type = ASN_INTEGER;
+ break;
+ case TCPRTOMIN:
+#ifdef TCPTV_NEEDS_HZ
+ ret_value = TCPTV_MIN;
+#else
+ ret_value = TCPTV_MIN / PR_SLOWHZ * 1000;
+#endif
+ type = ASN_INTEGER;
+ break;
+ case TCPRTOMAX:
+#ifdef TCPTV_NEEDS_HZ
+ ret_value = TCPTV_REXMTMAX;
+#else
+ ret_value = TCPTV_REXMTMAX / PR_SLOWHZ * 1000;
+#endif
+ type = ASN_INTEGER;
+ break;
+ case TCPMAXCONN:
+ ret_value = -1; /* Dynamic maximum */
+ type = ASN_INTEGER;
+ break;
+ case TCPACTIVEOPENS:
+ ret_value = tcpstat[TCP_STAT_CONNATTEMPT];
+ break;
+ case TCPPASSIVEOPENS:
+ ret_value = tcpstat[TCP_STAT_ACCEPTS];
+ break;
+ /*
+ * NB: tcps_drops is actually the sum of the two MIB
+ * counters tcpAttemptFails and tcpEstabResets.
+ */
+ case TCPATTEMPTFAILS:
+ ret_value = tcpstat[TCP_STAT_CONNDROPS];
+ break;
+ case TCPESTABRESETS:
+ ret_value = tcpstat[TCP_STAT_DROPS];
+ break;
+ case TCPCURRESTAB:
+#ifdef USING_MIBII_TCPTABLE_MODULE
+ ret_value = TCP_Count_Connections();
+#else
+ ret_value = 0;
+#endif
+ type = ASN_GAUGE;
+ break;
+ case TCPINSEGS:
+ ret_value = tcpstat[TCP_STAT_RCVTOTAL];
+ break;
+ case TCPOUTSEGS:
+ /*
+ * RFC 1213 defines this as the number of segments sent
+ * "excluding those containing only retransmitted octets"
+ */
+ ret_value = tcpstat[TCP_STAT_SNDTOTAL] - tcpstat[TCP_STAT_SNDREXMITPACK];
+ break;
+ case TCPRETRANSSEGS:
+ ret_value = tcpstat[TCP_STAT_SNDREXMITPACK];
+ break;
+ case TCPINERRS:
+ ret_value = tcpstat[TCP_STAT_RCVBADSUM] + tcpstat[TCP_STAT_RCVBADOFF]
+ + tcpstat[TCP_STAT_RCVMEMDROP] + tcpstat[TCP_STAT_RCVSHORT];
+ break;
+ case TCPOUTRSTS:
+ ret_value = tcpstat[TCP_STAT_SNDCTRL] - tcpstat[TCP_STAT_CLOSED];
+ break;
#elif defined(USES_TRADITIONAL_TCPSTAT) && !defined(_USE_FIRST_PROTOCOL)
#ifdef HAVE_SYS_TCPIPSTATS_H
/*