summaryrefslogtreecommitdiff
path: root/net/net-snmp
diff options
context:
space:
mode:
authortron <tron@pkgsrc.org>2003-09-14 11:57:03 +0000
committertron <tron@pkgsrc.org>2003-09-14 11:57:03 +0000
commit0f2cfed39515643660e8e37976bbaccf4b7b1721 (patch)
tree66fe53b1ae63795bd1724cd4e95f2dfadbd4a59a /net/net-snmp
parentac479f39cc03b564df67fed0ddb7c2aee987f8bd (diff)
downloadpkgsrc-0f2cfed39515643660e8e37976bbaccf4b7b1721.tar.gz
Fix build problem under NetBSD-1.6Y and newer. This patch was contributed
by Jun-ichiro itojun Hagino.
Diffstat (limited to 'net/net-snmp')
-rw-r--r--net/net-snmp/distinfo3
-rw-r--r--net/net-snmp/patches/patch-ab237
2 files changed, 239 insertions, 1 deletions
diff --git a/net/net-snmp/distinfo b/net/net-snmp/distinfo
index e130d7338e3..d52958da032 100644
--- a/net/net-snmp/distinfo
+++ b/net/net-snmp/distinfo
@@ -1,5 +1,6 @@
-$NetBSD: distinfo,v 1.2 2003/09/12 12:07:18 uebayasi Exp $
+$NetBSD: distinfo,v 1.3 2003/09/14 11:57:03 tron Exp $
SHA1 (net-snmp-5.0.9.tar.gz) = bb27bdf38da96833a3fa55f8c6a14732ab2c1991
Size (net-snmp-5.0.9.tar.gz) = 2345822 bytes
SHA1 (patch-aa) = 40ef03e182f8e8bb4f01f67f97c200c6e82f3d82
+SHA1 (patch-ab) = 94146deb60a3923481c52dc66a64a269641a1265
diff --git a/net/net-snmp/patches/patch-ab b/net/net-snmp/patches/patch-ab
new file mode 100644
index 00000000000..e9807e2d57a
--- /dev/null
+++ b/net/net-snmp/patches/patch-ab
@@ -0,0 +1,237 @@
+$NetBSD: patch-ab,v 1.1 2003/09/14 11:57:03 tron Exp $
+
+--- agent/mibgroup/mibII/ipv6.c 12 Sep 2003 23:10:08 -0000 1.1.1.1
++++ agent/mibgroup/mibII/ipv6.c 13 Sep 2003 05:36:50 -0000 1.2
+@@ -1225,6 +1225,10 @@
+ caddr_t p;
+ static struct in6pcb in6pcb, udb6;
+ int found, hitnext;
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ struct inpcbtable udbtable;
++ caddr_t first;
++#endif
+ #if defined(__FreeBSD__) && __FreeBSD__ >= 3
+ char *sysctl_buf;
+ struct xinpgen *xig, *oxig;
+@@ -1234,7 +1238,11 @@
+ DEBUGMSGOID(("mibII/ipv6", name, *length));
+ DEBUGMSG(("mibII/ipv6", " %d\n", exact));
+
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ if (!auto_nlist("udbtable", (char *) &udbtable, sizeof(udbtable)))
++ return NULL;
++ first = p = (caddr_t)udbtable.inpt_queue.cqh_first;
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ if (!auto_nlist("udb6", (char *) &udb6, sizeof(udb6)))
+ return NULL;
+ p = (caddr_t) udb6.in6p_next;
+@@ -1260,7 +1268,9 @@
+ (int) vp->namelen * sizeof(oid));
+ DEBUGMSGTL(("mibII/ipv6", "start: p=%x\n", p));
+ while (
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ p && p != first
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ p && (u_long) p != auto_nlist_value("udb6")
+ #else
+ xig->xig_len > sizeof(struct xinpgen)
+@@ -1273,6 +1283,12 @@
+ #else
+ in6pcb = ((struct xinpcb *) xig)->xi_inp;
+ #endif
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ if (in6pcb.in6p_af != AF_INET6) {
++ p = (caddr_t)in6pcb.in6p_queue.cqe_next;
++ continue;
++ }
++#endif
+ j = (int) vp->namelen;
+ for (i = 0; i < sizeof(struct in6_addr); i++)
+ newname[j++] = in6pcb.in6p_laddr.s6_addr[i];
+@@ -1325,7 +1341,9 @@
+ }
+ }
+ }
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ p = (caddr_t)in6pcb.in6p_queue.cqe_next;
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ p = (caddr_t) in6pcb.in6p_next;
+ #else
+ xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+@@ -1383,6 +1401,10 @@
+ int found, hitnext;
+ static int tcp6statemap[TCP6_NSTATES];
+ static int initialized = 0;
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ struct inpcbtable tcbtable;
++ caddr_t first;
++#endif
+ #if defined(__FreeBSD__) && __FreeBSD__ >= 3
+ char *sysctl_buf;
+ struct xinpgen *xig, *oxig;
+@@ -1407,7 +1429,11 @@
+ DEBUGMSGOID(("mibII/ipv6", name, *length));
+ DEBUGMSG(("mibII/ipv6", " %d\n", exact));
+
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ if (!auto_nlist("tcbtable", (char *) &tcbtable, sizeof(tcbtable)))
++ return NULL;
++ first = p = (caddr_t)udbtable.inpt_queue.cqh_first;
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ if (!auto_nlist("tcb6", (char *) &tcb6, sizeof(tcb6)))
+ return NULL;
+ p = (caddr_t) tcb6.in6p_next;
+@@ -1433,7 +1459,9 @@
+ memcpy((char *) newname, (char *) vp->name,
+ (int) vp->namelen * sizeof(oid));
+ while (
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ p && p != first
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ p && (u_long) p != auto_nlist_value("tcb6")
+ #else
+ xig->xig_len > sizeof(struct xinpgen)
+@@ -1450,6 +1478,12 @@
+ #else
+ in6pcb = ((struct xinpcb *) xig)->xi_inp;
+ #endif
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ if (in6pcb.in6p_af != AF_INET6) {
++ p = (caddr_t)in6pcb.in6p_queue.cqe_next;
++ continue;
++ }
++#endif
+ if (klookup
+ ((u_long) in6pcb.in6p_ppcb, (char *) &tcp6cb, sizeof(tcp6cb))
+ < 0) {
+@@ -1520,7 +1554,9 @@
+ }
+
+ skip:
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ p = (caddr_t)in6pcb.in6p_queue.cqe_next;
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ p = (caddr_t) in6pcb.in6p_next;
+ #else
+ xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+@@ -1587,6 +1623,10 @@
+ int found, hitnext;
+ static int tcpstatemap[TCP_NSTATES];
+ static int initialized = 0;
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ struct inpcbtable tcbtable;
++ caddr_t first;
++#endif
+ #if defined(__FreeBSD__) && __FreeBSD__ >= 3
+ char *sysctl_buf;
+ struct xinpgen *xig, *oxig;
+@@ -1611,7 +1651,11 @@
+ DEBUGMSGOID(("mibII/ipv6", name, *length));
+ DEBUGMSG(("mibII/ipv6", " %d\n", exact));
+
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ if (!auto_nlist("tcbtable", (char *) &tcbtable, sizeof(tcbtable)))
++ return NULL;
++ first = p = (caddr_t)tcbtable.inpt_queue.cqh_first;
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ if (!auto_nlist("tcb6", (char *) &tcb6, sizeof(tcb6)))
+ return NULL;
+ p = (caddr_t) tcb6.in6p_next;
+@@ -1637,7 +1681,9 @@
+ memcpy((char *) newname, (char *) vp->name,
+ (int) vp->namelen * sizeof(oid));
+ while (
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ p && p != first
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ p && (u_long) p != auto_nlist_value("tcb6")
+ #else
+ xig->xig_len > sizeof(struct xinpgen)
+@@ -1647,14 +1693,20 @@
+
+ #if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ if (klookup((u_long) p, (char *) &in6pcb, sizeof(in6pcb)) < 0)
+-#else
+- in6pcb = ((struct xinpcb *) xig)->xi_inp;
+-#endif
+ {
+ DEBUGMSGTL(("mibII/ipv6", "klookup fail for in6pcb at %x\n",
+ p));
+ break;
+ }
++#else
++ in6pcb = ((struct xinpcb *) xig)->xi_inp;
++#endif
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ if (in6pcb.in6p_af != AF_INET6) {
++ p = (caddr_t)in6pcb.in6p_queue.cqe_next;
++ continue;
++ }
++#endif
+ if (klookup
+ ((u_long) in6pcb.in6p_ppcb, (char *) &tcpcb, sizeof(tcpcb))
+ < 0) {
+@@ -1725,7 +1777,9 @@
+ }
+
+ skip:
+-#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ p = (caddr_t)in6pcb.in6p_queue.cqe_next;
++#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3)
+ p = (caddr_t) in6pcb.in6p_next;
+ #else
+ xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+Index: agent/mibgroup/mibII/tcpTable.c
+===================================================================
+RCS file: /cvsroot/apps/net-snmp/agent/mibgroup/mibII/tcpTable.c,v
+retrieving revision 1.1.1.1
+retrieving revision 1.2
+diff -u -r1.1.1.1 -r1.2
+--- agent/mibgroup/mibII/tcpTable.c 12 Sep 2003 23:10:08 -0000 1.1.1.1
++++ agent/mibgroup/mibII/tcpTable.c 13 Sep 2003 05:36:50 -0000 1.2
+@@ -499,6 +499,10 @@
+ snmp_log_perror("TCP_Count_Connections - inpcb");
+ break;
+ }
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ if (inpcb.inp_af != AF_INET)
++ continue;
++#endif
+ #if !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2))
+ if (inpcb.INP_PREV_SYMBOL != prev) { /* ??? */
+ sleep(1);
+Index: agent/mibgroup/mibII/udpTable.c
+===================================================================
+RCS file: /cvsroot/apps/net-snmp/agent/mibgroup/mibII/udpTable.c,v
+retrieving revision 1.1.1.1
+retrieving revision 1.2
+diff -u -r1.1.1.1 -r1.2
+--- agent/mibgroup/mibII/udpTable.c 12 Sep 2003 23:10:08 -0000 1.1.1.1
++++ agent/mibgroup/mibII/udpTable.c 13 Sep 2003 05:36:50 -0000 1.2
+@@ -178,6 +178,16 @@
+ LowState = -1; /* UDP doesn't have 'State', but it's a useful flag */
+ UDP_Scan_Init();
+ for (;;) {
++#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 /*1.6Y*/
++ if (inpcb.inp_af != AF_INET) {
++ if ((i = UDP_Scan_Next(&inpcb)) < 0)
++ goto Again;
++ if (i == 0)
++ break; /* Done */
++ cp = (u_char *) & inpcb.inp_laddr.s_addr;
++ continue;
++ }
++#endif
+ #ifdef hpux11
+ if ((i = UDP_Scan_Next(&udp)) == 0)
+ break; /* Done */
+