Current ucd-snmp package, version 4.0.1 with patch 12 applied.

This commit is contained in:
kim 1999-09-22 21:11:39 +00:00
parent 7c3a61d145
commit 976474516d
15 changed files with 1091 additions and 0 deletions

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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);

View file

@ -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;

View file

@ -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@

View file

@ -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

View file

@ -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 =

View file

@ -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

View file

@ -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)

View file

@ -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);
}

View file

@ -0,0 +1 @@
Extensible SNMP implementation.

View file

@ -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.

View file

@ -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

View file

@ -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