diff options
author | kim <kim> | 1999-09-22 21:11:39 +0000 |
---|---|---|
committer | kim <kim> | 1999-09-22 21:11:39 +0000 |
commit | 56e1eeaf6aba4aa44f3a5a27f67e4c4e69aac799 (patch) | |
tree | e7a0e606060cf1d7c6bc3a1d4d2aaae45f3d660c /net/ucd-snmp-current | |
parent | 62dfbe97acbda91dcba8221ed5280889b1a2124d (diff) | |
download | pkgsrc-56e1eeaf6aba4aa44f3a5a27f67e4c4e69aac799.tar.gz |
Current ucd-snmp package, version 4.0.1 with patch 12 applied.
Diffstat (limited to 'net/ucd-snmp-current')
-rw-r--r-- | net/ucd-snmp-current/Makefile | 54 | ||||
-rw-r--r-- | net/ucd-snmp-current/files/md5 | 3 | ||||
-rw-r--r-- | net/ucd-snmp-current/files/patch-sum | 10 | ||||
-rw-r--r-- | net/ucd-snmp-current/patches/patch-012 | 676 | ||||
-rw-r--r-- | net/ucd-snmp-current/patches/patch-aa | 64 | ||||
-rw-r--r-- | net/ucd-snmp-current/patches/patch-ab | 15 | ||||
-rw-r--r-- | net/ucd-snmp-current/patches/patch-ac | 15 | ||||
-rw-r--r-- | net/ucd-snmp-current/patches/patch-ad | 13 | ||||
-rw-r--r-- | net/ucd-snmp-current/patches/patch-ae | 13 | ||||
-rw-r--r-- | net/ucd-snmp-current/patches/patch-af | 13 | ||||
-rw-r--r-- | net/ucd-snmp-current/patches/patch-ag | 76 | ||||
-rw-r--r-- | net/ucd-snmp-current/pkg/COMMENT | 1 | ||||
-rw-r--r-- | net/ucd-snmp-current/pkg/DESCR | 14 | ||||
-rw-r--r-- | net/ucd-snmp-current/pkg/MESSAGE | 22 | ||||
-rw-r--r-- | net/ucd-snmp-current/pkg/PLIST | 102 |
15 files changed, 1091 insertions, 0 deletions
diff --git a/net/ucd-snmp-current/Makefile b/net/ucd-snmp-current/Makefile new file mode 100644 index 00000000000..de97f2427b6 --- /dev/null +++ b/net/ucd-snmp-current/Makefile @@ -0,0 +1,54 @@ +# $NetBSD: Makefile,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ +# + +DISTNAME= ucd-snmp-4.0.1 +PKGNAME= ${DISTNAME}.12 +CATEGORIES= net +MASTER_SITES= ftp://ucd-snmp.ucdavis.edu/ \ + ftp://sunsite.cnlab-switch.ch/mirror/ucd-snmp/ + +# This patch is malformed (first Index line is missing, other +# Index lines are relative to the agent directory), so I've +# put a fixed copy in ${FILESDIR}. (kim 1999-09-21) + +#PATCH_SITES= http://ucd-snmp.ucdavis.edu/patches/ +#PATCHFILES= 012.patch +#DIST_SUBDIR= ucd-snmp + +MAINTAINER= packages@netbsd.org +HOMEPAGE= http://www.ece.ucdavis.edu/ucd-snmp/ + +BUILD_DEPENDS+= autoconf:../../devel/autoconf + +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --with-defaults +CONFIGURE_ARGS+= --with-dummy-values +CONFIGURE_ARGS+= --with-libwrap +CONFIGURE_ARGS+= --with-sys-contact=root +# note the default appends a redundant and silly ".log" +CONFIGURE_ARGS+= --with-logfile="/var/log/snmpd" +# this might make it easier to use scotty's mibs, and local ones too +CONFIGURE_ARGS+= --with-mibdirs="${PREFIX}/share/snmp/mibs:${PREFIX}/lib/tnm2.1.8/mibs:/usr/local/share/snmp/mibs" + +# pass down PKG_PREFIX to simulate pkg_add's environment +MAKE_ENV+= PKG_PREFIX="${PREFIX}" + +.include "../../mk/bsd.prefs.mk" + +pre-configure: + (cd ${WRKSRC}; autoreconf --force) + +# Need to run INSTALL script as this doesn't happen automagically from pkgsrc. +post-install: + @${MKDIR} ${PREFIX}/share/examples/ucd-snmp + @for F in ${WRKSRC}/etc/* ; do \ + ${INSTALL_DATA} $$F ${PREFIX}/share/examples/ucd-snmp ; \ + done + ${ECHO} "Creating ${PREFIX}/etc/rc.d/snmpd.sh startup file."; \ + ${ECHO} "#!/bin/sh" > ${PREFIX}/etc/rc.d/snmpd.sh; \ + ${ECHO} "[ -x ${PREFIX}/sbin/snmpd ] && ${PREFIX}/sbin/snmpd && ${ECHO} -n ' snmpd'" >> ${PREFIX}/etc/rc.d/snmpd.sh + ${CHMOD} 755 ${PREFIX}/etc/rc.d/snmpd.sh + ${INSTALL_DATA_DIR} ${PREFIX}/lib/snmp/dlmod + ${TOUCH} ${PREFIX}/lib/snmp/dlmod/.keepme + +.include "../../mk/bsd.pkg.mk" diff --git a/net/ucd-snmp-current/files/md5 b/net/ucd-snmp-current/files/md5 new file mode 100644 index 00000000000..d74ef52b2b5 --- /dev/null +++ b/net/ucd-snmp-current/files/md5 @@ -0,0 +1,3 @@ +$NetBSD: md5,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +MD5 (ucd-snmp-4.0.1.tar.gz) = ba72a7b8c9efd226b72baf74d68d4511 diff --git a/net/ucd-snmp-current/files/patch-sum b/net/ucd-snmp-current/files/patch-sum new file mode 100644 index 00000000000..34d4edb5cc2 --- /dev/null +++ b/net/ucd-snmp-current/files/patch-sum @@ -0,0 +1,10 @@ +$NetBSD: patch-sum,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +MD5 (patch-012) = 70b04d9dac52c0cc219b1c3d8b7d82ec +MD5 (patch-aa) = 2a207b08ae1eb7ff69ad3e2127361040 +MD5 (patch-ab) = d77d772f82911e2bbb3efbbe6311ea4a +MD5 (patch-ac) = 69bc75948c5cb2142afc1d94a8c8f4dc +MD5 (patch-ad) = 6a4ab69f5c3f0b98bffcb273c132c837 +MD5 (patch-ae) = 732a0d565d585d53ca5a3f4d8584744c +MD5 (patch-af) = 5f8231f96a5958e72b74c22c4ee65161 +MD5 (patch-ag) = ef99d3a5839cf4491e58eee1c73422b1 diff --git a/net/ucd-snmp-current/patches/patch-012 b/net/ucd-snmp-current/patches/patch-012 new file mode 100644 index 00000000000..f4bc33d2368 --- /dev/null +++ b/net/ucd-snmp-current/patches/patch-012 @@ -0,0 +1,676 @@ +$NetBSD: patch-012,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +Index: agent/snmpd.c +=================================================================== +RCS file: /opt/ucd-snmp/ucd-snmp/agent/snmpd.c,v +retrieving revision 1.137 +diff -c -r1.137 snmpd.c +*** snmpd.c 1999/08/23 20:54:32 1.137 +--- snmpd.c 1999/08/27 02:43:49 +*************** +*** 202,213 **** + + #define NUM_SOCKETS 32 + +! #ifdef USING_SD_HANDLERS +! static int sdlist[NUM_SOCKETS], +! sdlen = 0; +! static int portlist[NUM_SOCKETS]; +! int (*sd_handlers[NUM_SOCKETS]) (int); +! #endif + + /* + * Prototypes. +--- 202,211 ---- + + #define NUM_SOCKETS 32 + +! #ifdef USING_SMUX_MODULE +! static int sdlist[NUM_SOCKETS], sdlen = 0; +! int listen_sd; +! #endif /* USING_SMUX_MODULE */ + + /* + * Prototypes. +*************** +*** 909,914 **** +--- 907,915 ---- + struct timeval sched, *svp = &sched, + now, *nvp = &now; + int count, block; ++ #ifdef USING_SMUX_MODULE ++ int i, j, sd; ++ #endif /* USING_SMUX_MODULE */ + + + +*************** +*** 944,949 **** +--- 945,960 ---- + snmp_select_info(&numfds, &fdset, tvp, &block); + if (block == 1) + tvp = NULL; /* block without timeout */ ++ #ifdef USING_SMUX_MODULE ++ if (listen_sd >= 0) { ++ FD_SET(listen_sd, &fdset); ++ numfds = listen_sd >= numfds ? listen_sd + 1 : numfds; ++ for (i = 0; i < sdlen; i++) { ++ FD_SET(sdlist[i], &fdset); ++ numfds = sdlist[i] >= numfds ? sdlist[i] + 1 : numfds; ++ } ++ } ++ #endif /* USING_SMUX_MODULE */ + count = select(numfds, &fdset, 0, 0, tvp); + + if (count > 0){ +*************** +*** 964,969 **** +--- 975,1001 ---- + return -1; + } /* endif -- count>0 */ + ++ #ifdef USING_SMUX_MODULE ++ /* handle the SMUX sd's */ ++ if (listen_sd >= 0) { ++ for (i = 0; i < sdlen; i++) { ++ if (FD_ISSET(sdlist[i], &fdset)) { ++ if (smux_process(sdlist[i]) < 0) { ++ for (; i < (sdlen - 1); i++) { ++ sdlist[i] = sdlist[i+1]; ++ } ++ sdlen--; ++ } ++ } ++ } ++ /* new connection */ ++ if (FD_ISSET(listen_sd, &fdset)) { ++ if ((sd = smux_accept(listen_sd)) >= 0) { ++ sdlist[sdlen++] = sd; ++ } ++ } ++ } ++ #endif /* USING_SMUX_MODULE */ + + /* + * If the time 'now' is greater than the 'sched'uled time, then: +Index: agent/mibgroup/smux/smux.c +=================================================================== +RCS file: /opt/ucd-snmp/ucd-snmp/agent/mibgroup/smux/smux.c,v +retrieving revision 1.29 +diff -c -r1.29 smux.c +*** smux.c 1999/08/24 22:14:18 1.29 +--- smux.c 1999/08/27 02:43:50 +*************** +*** 69,84 **** + oid smux_objid[MAX_OID_LEN]; + u_char smux_str[SMUXMAXSTRLEN]; + +! #ifdef USING_SD_HANDLERS +! extern int sdlist[]; +! extern int sdlen; +! extern int (*sd_handlers[])(int); +! #endif + + static struct timeval smux_rcv_timeout; + static u_long smux_reqid; + +! int init_smux (void); + static u_char *smux_open_process (int, u_char *, size_t *, int *); + static u_char *smux_rreq_process (int, u_char *, size_t *); + static u_char *smux_close_process (int, u_char *, size_t *); +--- 69,80 ---- + oid smux_objid[MAX_OID_LEN]; + u_char smux_str[SMUXMAXSTRLEN]; + +! extern int listen_sd; + + static struct timeval smux_rcv_timeout; + static u_long smux_reqid; + +! void init_smux (void); + static u_char *smux_open_process (int, u_char *, size_t *, int *); + static u_char *smux_rreq_process (int, u_char *, size_t *); + static u_char *smux_close_process (int, u_char *, size_t *); +*************** +*** 161,180 **** + } + } + +! int + init_smux(void) + { + + struct sockaddr_in lo_socket; +- int smux_sd; + int one = 1; + + snmpd_register_config_handler("smuxpeer", smux_parse_peer_auth, + smux_free_peer_auth, + "OID-IDENTITY PASSWORD"); +- + /* Reqid */ + smux_reqid = 0; + + /* Receive timeout */ + smux_rcv_timeout.tv_sec = 0; +--- 157,175 ---- + } + } + +! void + init_smux(void) + { + + struct sockaddr_in lo_socket; + int one = 1; + + snmpd_register_config_handler("smuxpeer", smux_parse_peer_auth, + smux_free_peer_auth, + "OID-IDENTITY PASSWORD"); + /* Reqid */ + smux_reqid = 0; ++ listen_sd = -1; + + /* Receive timeout */ + smux_rcv_timeout.tv_sec = 0; +*************** +*** 185,222 **** + lo_socket.sin_family = AF_INET; + lo_socket.sin_port = htons((u_short) SMUXPORT); + +! if ((smux_sd = socket (AF_INET, SOCK_STREAM, 0)) < 0) { + snmp_log_perror("[init_smux] socket failed"); +! return SMUXNOTOK; + } +! if (bind (smux_sd, (struct sockaddr *) &lo_socket, + sizeof (lo_socket)) < 0) { + snmp_log_perror("[init_smux] bind failed"); +! close(smux_sd); +! return SMUXNOTOK; + } + +! if (setsockopt (smux_sd, SOL_SOCKET, SO_KEEPALIVE, (char *)&one, + sizeof (one)) < 0) { + snmp_log_perror("[init_smux] setsockopt(SO_KEEPALIVE) failed"); +! close(smux_sd); +! return SMUXNOTOK; + } +! if(listen(smux_sd, SOMAXCONN) == -1) { + snmp_log_perror("[init_smux] listen failed"); +! close(smux_sd); +! return SMUXNOTOK; + } +- #ifdef USING_SD_HANDLERS +- sdlist[sdlen] = smux_sd; +- sd_handlers[sdlen++] = smux_accept; +- +- DEBUGMSGTL(("smux_init","sdlen in smux_init: %d\n", sdlen)); +- #endif +- DEBUGMSGTL(("smux_init", "[smux_init] done; smux_sd is %d, smux_port is %d\n", smux_sd, +- ntohs(lo_socket.sin_port))); + +! return SMUXOK; + } + + u_char * +--- 180,216 ---- + lo_socket.sin_family = AF_INET; + lo_socket.sin_port = htons((u_short) SMUXPORT); + +! if ((listen_sd = socket (AF_INET, SOCK_STREAM, 0)) < 0) { + snmp_log_perror("[init_smux] socket failed"); +! return; + } +! +! if (bind (listen_sd, (struct sockaddr *) &lo_socket, + sizeof (lo_socket)) < 0) { + snmp_log_perror("[init_smux] bind failed"); +! close(listen_sd); +! listen_sd = -1; +! return; + } + +! #ifdef SO_KEEPALIVE +! if (setsockopt (listen_sd, SOL_SOCKET, SO_KEEPALIVE, (char *)&one, + sizeof (one)) < 0) { + snmp_log_perror("[init_smux] setsockopt(SO_KEEPALIVE) failed"); +! close(listen_sd); +! listen_sd = -1; +! return; + } +! #endif /* SO_KEEPALIVE */ +! +! if(listen(listen_sd, SOMAXCONN) == -1) { + snmp_log_perror("[init_smux] listen failed"); +! close(listen_sd); +! listen_sd = -1; +! return; + } + +! DEBUGMSGTL(("smux_init", "[smux_init] done; smux listen sd is %d, smux port is %d\n", listen_sd, ntohs(lo_socket.sin_port))); + } + + u_char * +*************** +*** 240,246 **** + } + if (rptr == NULL) + return NULL; +! else if (exact && (*length <= rptr->sr_name_len)) + return NULL; + + *write_method = var_smux_write; +--- 234,240 ---- + } + if (rptr == NULL) + return NULL; +! else if (exact && (*length < rptr->sr_name_len)) + return NULL; + + *write_method = var_smux_write; +*************** +*** 355,373 **** + errno = 0; + if((fd = accept(sd, (struct sockaddr *)&in_socket, &alen)) < 0) { + snmp_log_perror("[smux_accept] accept failed"); +! return SMUXNOTOK; + } else { + snmp_log(LOG_ERR, "[smux_accept] accepted fd %d - errno %d\n", fd, errno); + if (npeers + 1 == SMUXMAXPEERS) { + DEBUGMSGTL (("smux","[smux_accept] denied peer on fd %d, limit reached", fd)); + close(sd); +! return SMUXNOTOK; + } + /* now block for an OpenPDU */ + if ((len = recv(fd, (char *)data, SMUXMAXPKTSIZE, 0)) <= 0) { + DEBUGMSGTL (("smux","[smux_accept] peer on fd %d died or timed out\n", fd)); + close(fd); +! return SMUXNOTOK; + } + /* try to authorize him */ + ptr = data; +--- 349,367 ---- + errno = 0; + if((fd = accept(sd, (struct sockaddr *)&in_socket, &alen)) < 0) { + snmp_log_perror("[smux_accept] accept failed"); +! return -1; + } else { + snmp_log(LOG_ERR, "[smux_accept] accepted fd %d - errno %d\n", fd, errno); + if (npeers + 1 == SMUXMAXPEERS) { + DEBUGMSGTL (("smux","[smux_accept] denied peer on fd %d, limit reached", fd)); + close(sd); +! return -1; + } + /* now block for an OpenPDU */ + if ((len = recv(fd, (char *)data, SMUXMAXPKTSIZE, 0)) <= 0) { + DEBUGMSGTL (("smux","[smux_accept] peer on fd %d died or timed out\n", fd)); + close(fd); +! return -1; + } + /* try to authorize him */ + ptr = data; +*************** +*** 375,393 **** + smux_send_close(fd, SMUXC_PACKETFORMAT); + close(fd); + DEBUGMSGTL (("smux","[smux_accept] peer on %d sent bad open")); +! return SMUXNOTOK; + } else if (type != (u_char)SMUX_OPEN) { + smux_send_close(fd, SMUXC_PROTOCOLERROR); + close(fd); + DEBUGMSGTL (("smux","[smux_accept] peer on %d did not send open: (%d)\n", type)); +! return SMUXNOTOK; + } + ptr = smux_open_process(fd, ptr, &len, &fail); + if (fail) { + smux_send_close(fd, SMUXC_AUTHENTICATIONFAILURE); + close(fd); + DEBUGMSGTL (("smux","[smux_accept] peer on %d failed authentication\n", fd)); +! return SMUXNOTOK; + } + + /* he's OK */ +--- 369,387 ---- + smux_send_close(fd, SMUXC_PACKETFORMAT); + close(fd); + DEBUGMSGTL (("smux","[smux_accept] peer on %d sent bad open")); +! return -1; + } else if (type != (u_char)SMUX_OPEN) { + smux_send_close(fd, SMUXC_PROTOCOLERROR); + close(fd); + DEBUGMSGTL (("smux","[smux_accept] peer on %d did not send open: (%d)\n", type)); +! return -1; + } + ptr = smux_open_process(fd, ptr, &len, &fail); + if (fail) { + smux_send_close(fd, SMUXC_AUTHENTICATIONFAILURE); + close(fd); + DEBUGMSGTL (("smux","[smux_accept] peer on %d failed authentication\n", fd)); +! return -1; + } + + /* he's OK */ +*************** +*** 397,413 **** + snmp_log_perror("smux/setsockopt"); + } + #endif +- + npeers++; +! #ifdef USING_SD_HANDLERS +! sdlist[sdlen] = fd; +! sd_handlers[sdlen++] = smux_process; +! +! DEBUGMSGTL (("smux","[smux_accept] fd %d, sdlen %d\n", fd, sdlen)); +! #endif + } +! +! return SMUXOK; + } + + int +--- 391,400 ---- + snmp_log_perror("smux/setsockopt"); + } + #endif + npeers++; +! DEBUGMSGTL (("smux","[smux_accept] fd %d\n", fd)); + } +! return fd; + } + + int +*************** +*** 424,435 **** + */ + DEBUGMSGTL (("smux","[smux_process] peer on fd %d died or timed out\n", fd)); + smux_peer_cleanup(fd); +! return SMUXNOTOK; /* return value ignored */ + } + + DEBUGMSGTL (("smux","[smux_process] Processing %d bytes\n", length)); + +! error = SMUXOK; + + ptr = data; + len = length; +--- 411,422 ---- + */ + DEBUGMSGTL (("smux","[smux_process] peer on fd %d died or timed out\n", fd)); + smux_peer_cleanup(fd); +! return -1; + } + + DEBUGMSGTL (("smux","[smux_process] Processing %d bytes\n", length)); + +! error = 0; + + ptr = data; + len = length; +*************** +*** 442,474 **** + smux_send_close(fd, SMUXC_PROTOCOLERROR); + DEBUGMSGTL (("smux","[smux_process] peer on fd %d sent duplicate open?\n", fd)); + smux_peer_cleanup(fd); + break; + case SMUX_CLOSE: + ptr = smux_close_process(fd, ptr, &len); + smux_peer_cleanup(fd); + break; + case SMUX_RREQ: + ptr = smux_rreq_process(fd, ptr, &len); + break; + case SMUX_RRSP: +! error = SMUXNOTOK; + ptr = NULL; + smux_send_close(fd, SMUXC_PROTOCOLERROR); + smux_peer_cleanup(fd); + DEBUGMSGTL (("smux","[smux_process] peer on fd %d sent RRSP!\n", fd)); + break; + case SMUX_SOUT: +! error = SMUXNOTOK; + ptr = NULL; + smux_send_close(fd, SMUXC_PROTOCOLERROR); + smux_peer_cleanup(fd); + DEBUGMSGTL (("smux","This shouldn't have happened!\n")); + break; + default: + smux_send_close(fd, SMUXC_PACKETFORMAT); + smux_peer_cleanup(fd); + DEBUGMSGTL (("smux","[smux_process] Wrong type %d\n", (int)type)); +! error = SMUXNOTOK; + break; + } + } +--- 429,468 ---- + smux_send_close(fd, SMUXC_PROTOCOLERROR); + DEBUGMSGTL (("smux","[smux_process] peer on fd %d sent duplicate open?\n", fd)); + smux_peer_cleanup(fd); ++ error = -1; + break; + case SMUX_CLOSE: + ptr = smux_close_process(fd, ptr, &len); + smux_peer_cleanup(fd); ++ error = -1; + break; + case SMUX_RREQ: + ptr = smux_rreq_process(fd, ptr, &len); + break; + case SMUX_RRSP: +! error = -1; + ptr = NULL; + smux_send_close(fd, SMUXC_PROTOCOLERROR); + smux_peer_cleanup(fd); + DEBUGMSGTL (("smux","[smux_process] peer on fd %d sent RRSP!\n", fd)); + break; + case SMUX_SOUT: +! error = -1; + ptr = NULL; + smux_send_close(fd, SMUXC_PROTOCOLERROR); + smux_peer_cleanup(fd); + DEBUGMSGTL (("smux","This shouldn't have happened!\n")); + break; ++ case SMUX_TRAP: ++ /* just log it.. don't handle traps yet */ ++ snmp_log(LOG_INFO, "Got trap from peer on fd %d\n", fd); ++ ptr += len; ++ break; + default: + smux_send_close(fd, SMUXC_PACKETFORMAT); + smux_peer_cleanup(fd); + DEBUGMSGTL (("smux","[smux_process] Wrong type %d\n", (int)type)); +! error = -1; + break; + } + } +*************** +*** 690,698 **** + * belong to him. XXX for now, ignore it. + */ + return ptr; +- } + +! if (operation == SMUX_REGOP_REGISTER) { + if (priority < -1) { + DEBUGMSGTL (("smux","[smux_rreq_process] peer fd %d invalid priority", sd, priority)); + return NULL; +--- 684,692 ---- + * belong to him. XXX for now, ignore it. + */ + return ptr; + +! } else if ((operation == SMUX_REGOP_REGISTER_RO) || +! (operation == SMUX_REGOP_REGISTER_RW)) { + if (priority < -1) { + DEBUGMSGTL (("smux","[smux_rreq_process] peer fd %d invalid priority", sd, priority)); + return NULL; +*************** +*** 763,775 **** + smux_variables, sizeof(struct variable2), + 1, nrptr->sr_name, nrptr->sr_name_len); + done: +! if (smux_send_rrsp(sd, nrptr->sr_priority)) + DEBUGMSGTL (("smux","[smux_rreq_process] send failed\n")); + return ptr; + } +- +- DEBUGMSGTL (("smux","[smux_rreq_process] unknown operation\n")); +- return NULL; + } + + static void +--- 757,769 ---- + smux_variables, sizeof(struct variable2), + 1, nrptr->sr_name, nrptr->sr_name_len); + done: +! if (smux_send_rrsp(sd, nrptr->sr_priority) < 0) + DEBUGMSGTL (("smux","[smux_rreq_process] send failed\n")); + return ptr; ++ } else { ++ DEBUGMSGTL (("smux","[smux_rreq_process] unknown operation\n")); ++ return NULL; + } + } + + static void +*************** +*** 916,922 **** + type = SMUX_GETNEXT; + + if (smux_build(type, smux_reqid, objid, len, 0, NULL, +! *len, packet, &length) != SMUXOK) { + snmp_log(LOG_NOTICE, "[smux_snmp_process]: smux_build failed\n"); + return NULL; + } +--- 910,916 ---- + type = SMUX_GETNEXT; + + if (smux_build(type, smux_reqid, objid, len, 0, NULL, +! *len, packet, &length) < 0) { + snmp_log(LOG_NOTICE, "[smux_snmp_process]: smux_build failed\n"); + return NULL; + } +*************** +*** 1191,1197 **** + + *length = ptr - packet; + +! return SMUXOK; + } + + static void +--- 1185,1191 ---- + + *length = ptr - packet; + +! return 0; + } + + static void +*************** +*** 1231,1248 **** + free(rptr); + } + } +- #ifdef USING_SD_HANDLERS +- /* XXX stop paying attention to his socket */ +- for (i = 0; i < sdlen; i++) { +- if (sdlist[i] == sd) { +- for (; i < (sdlen-1); i++) { +- sdlist[i] = sdlist[i+1]; +- sd_handlers[i] = sd_handlers[i+1]; +- } +- } +- } +- sdlen--; +- #endif + + /* decrement the peer count */ + npeers--; +--- 1225,1230 ---- +*************** +*** 1271,1279 **** + for(i = 0; i < 4; i++, mask >>= 8) + *(++ptr) = (u_char)(pri & mask); + +! if((send(sd, (char *)outdata, 6, 0)) < 0) +! return SMUXNOTOK; +! else +! return SMUXOK; + } +- +--- 1253,1257 ---- + for(i = 0; i < 4; i++, mask >>= 8) + *(++ptr) = (u_char)(pri & mask); + +! return (send(sd, (char *)outdata, 6, 0)); + } +Index: agent/mibgroup/smux/smux.h +=================================================================== +RCS file: /opt/ucd-snmp/ucd-snmp/agent/mibgroup/smux/smux.h,v +retrieving revision 1.6 +diff -c -r1.6 smux.h +*** smux.h 1999/05/03 22:38:37 1.6 +--- smux.h 1999/08/27 02:43:50 +*************** +*** 3,14 **** + * Rewritten by Nick Amato <naamato@merit.net>. + */ + +- #define NOTINIT 0 +- #define INIT 1 +- +- #define SMUXOK 0 +- #define SMUXNOTOK -1 +- + #define SMUXPORT 199 + + #define SMUXMAXPKTSIZE 1500 +--- 3,8 ---- +*************** +*** 25,30 **** +--- 19,25 ---- + #define SMUX_GETNEXT (ASN_CONTEXT | ASN_CONSTRUCTOR | 1) + #define SMUX_GETRSP (ASN_CONTEXT | ASN_CONSTRUCTOR | 2) + #define SMUX_SET (ASN_CONTEXT | ASN_CONSTRUCTOR | 3) ++ #define SMUX_TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 4) + + #define SMUXC_GOINGDOWN 0 + #define SMUXC_UNSUPPORTEDVERSION 1 +*************** +*** 36,43 **** + #define SMUX_MAX_PEERS 10 + #define SMUX_MAX_PRIORITY 2147483647 + +! #define SMUX_REGOP_DELETE 0 +! #define SMUX_REGOP_REGISTER 1 + + /* + * Authorized peers read from the config file +--- 31,39 ---- + #define SMUX_MAX_PEERS 10 + #define SMUX_MAX_PRIORITY 2147483647 + +! #define SMUX_REGOP_DELETE 0 +! #define SMUX_REGOP_REGISTER_RO 1 +! #define SMUX_REGOP_REGISTER_RW 2 + + /* + * Authorized peers read from the config file +*************** +*** 60,66 **** + struct _smux_reg *sr_next; /* next one */ + } smux_reg; + +! extern int init_smux (void); + extern int smux_accept (int); + extern u_char *smux_snmp_process (int, oid *, size_t *, size_t *, u_char *, int); + extern int smux_process (int); +--- 56,62 ---- + struct _smux_reg *sr_next; /* next one */ + } smux_reg; + +! extern void init_smux (void); + extern int smux_accept (int); + extern u_char *smux_snmp_process (int, oid *, size_t *, size_t *, u_char *, int); + extern int smux_process (int); diff --git a/net/ucd-snmp-current/patches/patch-aa b/net/ucd-snmp-current/patches/patch-aa new file mode 100644 index 00000000000..55794606778 --- /dev/null +++ b/net/ucd-snmp-current/patches/patch-aa @@ -0,0 +1,64 @@ +$NetBSD: patch-aa,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +--- configure.in.orig Tue Aug 24 19:05:15 1999 ++++ configure.in Wed Sep 22 11:04:16 1999 +@@ -142,14 +142,16 @@ + + AC_ARG_WITH(libwrap, + [ --with-libwrap[=LIBPATH] Compile in libwrap (tcp_wrappers) support.], +- if test "x$withval" != "x" -a -d "$withval"; then +- WRAPLIBS="-L$withval -lwrap" +- elif test "x$withval" = "xyes"; then +- WRAPLIBS="-lwrap" +- else +- WRAPLIBS="$withval $LIBS" ++ if test "x$withval" != "xno"; then ++ if test "x$withval" = "xyes"; then ++ WRAPLIBS="-lwrap" ++ elif test "x$withval" != "x" -a -d "$withval"; then ++ WRAPLIBS="-L$withval -lwrap" ++ else ++ WRAPLIBS="$withval $LIBS" ++ fi ++ AC_DEFINE(USE_LIBWRAP) + fi +- AC_DEFINE(USE_LIBWRAP) + ) + + dnl This can't be within AC_ARG_WITH. I don't want to read autoconf m4 +@@ -925,11 +927,7 @@ + + AC_CHECK_STRUCT_FOR([ + #include <sys/types.h> +-#define KERNEL +-#define _KERNEL + #include <sys/socket.h> +-#undef KERNEL +-#undef _KERNEL + #include <net/route.h> + ], rtentry, rt_dst, no) + +@@ -940,11 +938,7 @@ + dnl 4.4 compat + AC_TRY_COMPILE([ + #include <sys/types.h> +-#define KERNEL +-#define _KERNEL + #include <sys/socket.h> +-#undef KERNEL +-#undef _KERNEL + #include <net/route.h> + ],[ + +@@ -961,11 +955,7 @@ + if test "x$ac_cv_RTENTRY_TYPE" = "x"; then + AC_TRY_COMPILE([ + #include <sys/types.h> +-#define KERNEL +-#define _KERNEL + #include <sys/socket.h> +-#undef KERNEL +-#undef _KERNEL + #include <net/route.h> + ],[ + struct rtentry rt; diff --git a/net/ucd-snmp-current/patches/patch-ab b/net/ucd-snmp-current/patches/patch-ab new file mode 100644 index 00000000000..c8c982302dd --- /dev/null +++ b/net/ucd-snmp-current/patches/patch-ab @@ -0,0 +1,15 @@ +$NetBSD: patch-ab,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +--- agent/Makefile.in.orig Fri Aug 13 10:16:28 1999 ++++ agent/Makefile.in Wed Sep 22 09:56:13 1999 +@@ -4,8 +4,8 @@ + + TARG = snmpd + USELIBS = ../snmplib/libsnmp.$(SHLIB_EXTENSION)$(SHLIB_VERSION) +-LOCAL_LIBS = -L../snmplib +-LIBS = $(CC_RUNTIME_ARG) -lsnmp @WRAPLIBS@ @LIBS@ ++LOCAL_LIBS = -L../snmplib -lsnmp ++LIBS = $(CC_RUNTIME_ARG) @WRAPLIBS@ @LIBS@ + + CPPFLAGS = -I.. -I$(srcdir)/.. -I$(srcdir)/../snmplib \ + -I$(srcdir) -I. -I$(srcdir)/mibgroup -Imibgroup @CPPFLAGS@ diff --git a/net/ucd-snmp-current/patches/patch-ac b/net/ucd-snmp-current/patches/patch-ac new file mode 100644 index 00000000000..9aa3bc957cf --- /dev/null +++ b/net/ucd-snmp-current/patches/patch-ac @@ -0,0 +1,15 @@ +$NetBSD: patch-ac,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +--- apps/Makefile.in.orig Fri Aug 13 10:16:43 1999 ++++ apps/Makefile.in Wed Sep 22 09:56:24 1999 +@@ -13,8 +13,8 @@ + SUBDIRS = snmpnetstat + + USELIBS = ../snmplib/libsnmp.$(SHLIB_EXTENSION)$(SHLIB_VERSION) +-LOCAL_LIBS = -L../snmplib +-LIBS = $(CC_RUNTIME_ARG) -lsnmp @LIBS@ ++LOCAL_LIBS = -L../snmplib -lsnmp ++LIBS = $(CC_RUNTIME_ARG) @LIBS@ + + PARSEOBJS = snmp_parse_args.o + diff --git a/net/ucd-snmp-current/patches/patch-ad b/net/ucd-snmp-current/patches/patch-ad new file mode 100644 index 00000000000..fff8c5b8343 --- /dev/null +++ b/net/ucd-snmp-current/patches/patch-ad @@ -0,0 +1,13 @@ +$NetBSD: patch-ad,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +--- testing/Makefile.in.orig Tue Aug 24 19:49:21 1999 ++++ testing/Makefile.in Wed Sep 22 09:56:46 1999 +@@ -5,7 +5,7 @@ + TARG = etest ktest misctest stest + + USELIBS = ../snmplib/libsnmp.$(SHLIB_EXTENSION)$(SHLIB_VERSION) +-LIBS = -L../snmplib $(CC_RUNTIME_ARG) -lsnmp @LIBS@ ++LIBS = -L../snmplib -lsnmp $(CC_RUNTIME_ARG) @LIBS@ + + PARSEOBJS = + diff --git a/net/ucd-snmp-current/patches/patch-ae b/net/ucd-snmp-current/patches/patch-ae new file mode 100644 index 00000000000..3b7b466f9e2 --- /dev/null +++ b/net/ucd-snmp-current/patches/patch-ae @@ -0,0 +1,13 @@ +$NetBSD: patch-ae,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +--- agent/dlmods/Makefile.in.orig Mon Sep 14 15:48:22 1998 ++++ agent/dlmods/Makefile.in Wed Sep 22 09:57:02 1999 +@@ -4,7 +4,7 @@ + DLMODDIR= $(libdir)/snmp/dlmod + TARG= dlmod_mib.so example.so + USELIBS= $(top_srcdir)/snmplib/libsnmp.$(SHLIB_EXTENSION)$(SHLIB_VERSION) +-LIBS=# -L$(top_srcdir)/snmplib $(CC_RUNTIME_ARG) -lsnmp @LIBS@ ++LIBS=# -L$(top_srcdir)/snmplib -lsnmp $(CC_RUNTIME_ARG) @LIBS@ + + CPPFLAGS=@CPPFLAGS@ -I$(top_srcdir) -I$(top_srcdir)/snmplib \ + -I. -I.. -I../.. -I$(top_srcdir)/agent/mibgroup -I$(top_srcdir)/agent/mibgroup/misc diff --git a/net/ucd-snmp-current/patches/patch-af b/net/ucd-snmp-current/patches/patch-af new file mode 100644 index 00000000000..823b3c5a339 --- /dev/null +++ b/net/ucd-snmp-current/patches/patch-af @@ -0,0 +1,13 @@ +$NetBSD: patch-af,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +--- apps/snmpnetstat/Makefile.in.orig Mon Jul 26 12:04:09 1999 ++++ apps/snmpnetstat/Makefile.in Wed Sep 22 09:57:19 1999 +@@ -24,7 +24,7 @@ + CC = @CC@ $(CPPFLAGS) + + USELIBS=../../snmplib/libsnmp.$(SHLIB_EXTENSION)$(SHLIB_VERSION) +-LIBS= -L../../snmplib $(CC_RUNTIME_ARG) -lsnmp @LIBS@ ++LIBS= -L../../snmplib -lsnmp $(CC_RUNTIME_ARG) @LIBS@ + + all: $(TARG) + diff --git a/net/ucd-snmp-current/patches/patch-ag b/net/ucd-snmp-current/patches/patch-ag new file mode 100644 index 00000000000..c6779a84d29 --- /dev/null +++ b/net/ucd-snmp-current/patches/patch-ag @@ -0,0 +1,76 @@ +$NetBSD: patch-ag,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +--- agent/mibgroup/mibII/tcp.c.orig Wed Aug 18 12:30:37 1999 ++++ agent/mibgroup/mibII/tcp.c Wed Sep 22 17:04:19 1999 +@@ -850,62 +850,16 @@ + + int TCP_Count_Connections (void) + { +- int Established; +- struct inpcb cb; +- register struct inpcb *next; +-#if !(defined(freebsd2) || defined(netbsd2) || defined(openbsd2)) +- register struct inpcb *prev; +-#endif +- struct inpcb inpcb; +- struct tcpcb tcpcb; ++ int i, Established, State; ++ static struct inpcb inpcb; + +-Again: /* +- * Prepare to scan the control blocks +- */ +- Established = 0; +- +- auto_nlist(TCP_SYMBOL, (char *)&cb, sizeof(struct inpcb)); +- inpcb = cb; +-#if !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2)) +- prev = (struct inpcb *) auto_nlist_value(TCP_SYMBOL); +-#endif /* !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2)) */ +- /* +- * Scan the control blocks +- */ +-#if defined(freebsd2) || defined(netbsd1) || defined(openbsd2) +- while ((inpcb.INP_NEXT_SYMBOL != NULL) && (inpcb.INP_NEXT_SYMBOL != (struct inpcb *) auto_nlist_value(TCP_SYMBOL))) { +-#else /* defined(freebsd2) || defined(netbsd1) || defined(openbsd2) */ +- while (inpcb.INP_NEXT_SYMBOL != (struct inpcb *) auto_nlist_value(TCP_SYMBOL)) { +-#endif /* defined(freebsd2) || defined(netbsd1) */ +- next = inpcb.INP_NEXT_SYMBOL; +- +- if((klookup((unsigned long)next, (char *)&inpcb, sizeof (inpcb)) == 0)) { +- snmp_log_perror("TCP_Count_Connections - inpcb"); +- break; +- } +-#if !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2)) +- if (inpcb.INP_PREV_SYMBOL != prev) { /* ??? */ +- sleep(1); +- goto Again; +- } +-#endif /* !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2)) */ +- if (inet_lnaof(inpcb.inp_laddr) == INADDR_ANY) { +-#if !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2)) +- prev = next; +-#endif /* !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2)) */ +- continue; +- } +- if(klookup((unsigned long)inpcb.inp_ppcb, (char *)&tcpcb, sizeof (tcpcb)) == 0) { +- snmp_log_perror("TCP_Count_Connections - tcpcb"); +- break; +- } +- +- if ((tcpcb.t_state == TCPS_ESTABLISHED) || +- (tcpcb.t_state == TCPS_CLOSE_WAIT)) +- Established++; +-#if !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2)) +- prev = next; +-#endif /* !(defined(freebsd2) || defined(netbsd1) || defined(openbsd2)) */ ++Again: ++ TCP_Scan_Init; ++ for (;;) { ++ if ((i = TCP_Scan_Next(&State, &inpcb)) < 0) goto Again; ++ if (i == 0) break; /* Done */ ++ if ((State == TCPS_ESTABLISHED) || (State == TCPS_CLOSE_WAIT)) ++ Established++; + } + return(Established); + } diff --git a/net/ucd-snmp-current/pkg/COMMENT b/net/ucd-snmp-current/pkg/COMMENT new file mode 100644 index 00000000000..553444e1a75 --- /dev/null +++ b/net/ucd-snmp-current/pkg/COMMENT @@ -0,0 +1 @@ +Extensible SNMP implementation. diff --git a/net/ucd-snmp-current/pkg/DESCR b/net/ucd-snmp-current/pkg/DESCR new file mode 100644 index 00000000000..341ba043ea6 --- /dev/null +++ b/net/ucd-snmp-current/pkg/DESCR @@ -0,0 +1,14 @@ +This is UCD SNMP, a derivative of CMU's SNMP package. + +This package contains a port and modified code of the CMU 2.1.2.1 +snmp agent. It has been modified to allow extensibility quickly +and easily. It is far from the best and most configurable systems; +but hey: its free. + +We use this agent here to monitor known system problems before they +take the machine over. The agent can be easily configured to +monitor the number of a given process running, run external scripts +to check and report functional status. Examples: mountd(s) under +Ultrix 4.3 which tend to fork themselves crazy and eventually fill +up the process table; On our hp700s, "amd" sometimes stops working, +HP VUE hangs and fails to start X, etc. diff --git a/net/ucd-snmp-current/pkg/MESSAGE b/net/ucd-snmp-current/pkg/MESSAGE new file mode 100644 index 00000000000..dcc5d5c87fe --- /dev/null +++ b/net/ucd-snmp-current/pkg/MESSAGE @@ -0,0 +1,22 @@ +$NetBSD: MESSAGE,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ + +You may want to install the x11/p5-Tk and net/p5-SNMP packages to +use the tkmib application! + +You may also want to install the net/scotty package to do network +monitoring. + +Finally, a note from the maintainer: + + I'm asking (begging) people to send me a postcard of your home city, + area, or country. I intend to arrange them into a logo, take a + picture of them all, and use the picture on the ucd-snmp web page. + I've gotten a few already, but need a lot more to make the logo a + decent size. The first pass from the postcards people have sent me + so far can be seen on the ucd-snmp web site, listed below. If you + wish to send a postcard, please send it to: + + Wes Hardaker + IT - DCAS + UCDavis + Davis CA, 95616 diff --git a/net/ucd-snmp-current/pkg/PLIST b/net/ucd-snmp-current/pkg/PLIST new file mode 100644 index 00000000000..5f141fe0dd6 --- /dev/null +++ b/net/ucd-snmp-current/pkg/PLIST @@ -0,0 +1,102 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 1999/09/22 21:11:39 kim Exp $ +bin/encode_keychange +bin/snmpbulkwalk +bin/snmpcheck +bin/snmpdelta +bin/snmpget +bin/snmpgetnext +bin/snmpnetstat +bin/snmpset +bin/snmpstatus +bin/snmptable +bin/snmptest +bin/snmptranslate +bin/snmptrap +bin/snmpusm +bin/snmpwalk +bin/tkmib +etc/rc.d/snmpd.sh +include/ucd-snmp/asn1.h +include/ucd-snmp/callback.h +include/ucd-snmp/default_store.h +include/ucd-snmp/int64.h +include/ucd-snmp/mib.h +include/ucd-snmp/parse.h +include/ucd-snmp/snmp.h +include/ucd-snmp/snmp_alarm.h +include/ucd-snmp/snmp_api.h +include/ucd-snmp/snmp_client.h +include/ucd-snmp/snmp_debug.h +include/ucd-snmp/snmp_impl.h +include/ucd-snmp/system.h +include/ucd-snmp/ucd-snmp-config.h +include/ucd-snmp/ucd-snmp-includes.h +include/ucd-snmp/version.h +lib/libsnmp.a +man/man1/snmpbulkwalk.1 +man/man1/snmpcmd.1 +man/man1/snmpd.1 +man/man1/snmpdelta.1 +man/man1/snmpget.1 +man/man1/snmpgetnext.1 +man/man1/snmpnetstat.1 +man/man1/snmpset.1 +man/man1/snmpstatus.1 +man/man1/snmptable.1 +man/man1/snmptest.1 +man/man1/snmptranslate.1 +man/man1/snmptrap.1 +man/man1/snmpusm.1 +man/man1/snmpwalk.1 +man/man3/mib_api.3 +man/man3/read_config.3 +man/man3/snmp_api.3 +man/man3/snmp_sess_api.3 +man/man5/snmp.conf.5 +man/man5/snmp_config.5 +man/man5/snmpd.conf.5 +man/man5/snmptrapd.conf.5 +man/man5/variables.5 +man/man8/snmptrapd.8 +sbin/snmpd +sbin/snmptrapd +share/examples/ucd-snmp/README +share/examples/ucd-snmp/acl.conf +share/examples/ucd-snmp/context.conf +share/examples/ucd-snmp/party.conf +share/examples/ucd-snmp/view.conf +share/snmp/mibs/DLMOD-MIB.txt +share/snmp/mibs/EtherLike-MIB.txt +share/snmp/mibs/HOST-RESOURCES-MIB.txt +share/snmp/mibs/IANAifType-MIB.txt +share/snmp/mibs/IF-MIB.txt +share/snmp/mibs/IP-MIB.txt +share/snmp/mibs/IPFWACC-MIB.txt +share/snmp/mibs/RFC1155-SMI.txt +share/snmp/mibs/RFC1213-MIB.txt +share/snmp/mibs/RFC1271-MIB.txt +share/snmp/mibs/SNMP-FRAMEWORK-MIB.txt +share/snmp/mibs/SNMP-MPD-MIB.txt +share/snmp/mibs/SNMP-NOTIFICATION-MIB.txt +share/snmp/mibs/SNMP-PROXY-MIB.txt +share/snmp/mibs/SNMP-TARGET-MIB.txt +share/snmp/mibs/SNMP-USER-BASED-SM-MIB.txt +share/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.txt +share/snmp/mibs/SNMPv2-CONF.txt +share/snmp/mibs/SNMPv2-M2M-MIB.txt +share/snmp/mibs/SNMPv2-MIB.txt +share/snmp/mibs/SNMPv2-PARTY-MIB.txt +share/snmp/mibs/SNMPv2-SMI.txt +share/snmp/mibs/SNMPv2-TC.txt +share/snmp/mibs/SNMPv2-TM.txt +share/snmp/mibs/TCP-MIB.txt +share/snmp/mibs/UCD-SNMP-MIB.txt +share/snmp/mibs/UDP-MIB.txt +@unexec /bin/rm -f %D/share/snmp/mibs/.index +@dirrm share/snmp/mibs +@dirrm share/snmp +@dirrm share/examples/ucd-snmp +lib/snmp/dlmod/.keepme +@dirrm lib/snmp/dlmod +@dirrm lib/snmp +@dirrm include/ucd-snmp |