[Midnightbsd-cvs] src: bsnmp/snmpd: merge

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Nov 23 16:41:01 EST 2008


Log Message:
-----------
merge

Modified Files:
--------------
    src/contrib/bsnmp/snmpd:
        action.c (r1.1.1.1 -> r1.2)
        main.c (r1.2 -> r1.3)
        snmpd.config (r1.1.1.2 -> r1.2)
        tree.def (r1.1.1.1 -> r1.2)

-------------- next part --------------
Index: snmpd.config
===================================================================
RCS file: /home/cvs/src/contrib/bsnmp/snmpd/snmpd.config,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -L contrib/bsnmp/snmpd/snmpd.config -L contrib/bsnmp/snmpd/snmpd.config -u -r1.1.1.2 -r1.2
--- contrib/bsnmp/snmpd/snmpd.config
+++ contrib/bsnmp/snmpd/snmpd.config
@@ -26,7 +26,7 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $Begemot: bsnmp/snmpd/snmpd.config,v 1.15 2005/02/25 11:50:43 brandt_h Exp $
+# $Begemot: bsnmp/snmpd/snmpd.config,v 1.16 2006/02/14 09:04:20 brandt_h Exp $
 #
 # Example configuration file.
 #
Index: tree.def
===================================================================
RCS file: /home/cvs/src/contrib/bsnmp/snmpd/tree.def,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -L contrib/bsnmp/snmpd/tree.def -L contrib/bsnmp/snmpd/tree.def -u -r1.1.1.1 -r1.2
--- contrib/bsnmp/snmpd/tree.def
+++ contrib/bsnmp/snmpd/tree.def
@@ -26,7 +26,7 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $Begemot: bsnmp/snmpd/tree.def,v 1.38 2004/08/06 08:47:17 brandt Exp $
+# $Begemot: tree.def 517 2006-10-31 08:52:04Z brandt_h $
 #
 # System group and private Begemot SNMPd MIB.
 #
@@ -64,11 +64,19 @@
         (32 snmpProxyDrops COUNTER op_snmp GET)
       )
   ))
+
+  (4 private
+    (1 enterprises
+#
+# FreeBSD stuff
+#
+      (2238 freeBSD
+        (4 freeBSDVersion)
+      )
+
 #
 # Private Begemot Stuff
 #
-  (4 private
-    (1 enterprises
       (12325 fokus
         (1 begemot
 
Index: action.c
===================================================================
RCS file: /home/cvs/src/contrib/bsnmp/snmpd/action.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -L contrib/bsnmp/snmpd/action.c -L contrib/bsnmp/snmpd/action.c -u -r1.1.1.1 -r1.2
--- contrib/bsnmp/snmpd/action.c
+++ contrib/bsnmp/snmpd/action.c
@@ -2,6 +2,9 @@
  * Copyright (c) 2001-2003
  *	Fraunhofer Institute for Open Communication Systems (FhG Fokus).
  *	All rights reserved.
+ * Copyright (c) 2004-2006
+ *	Hartmut Brandt.
+ *	All rights reserved.
  *
  * Author: Harti Brandt <harti at freebsd.org>
  * 
@@ -26,13 +29,14 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Begemot: bsnmp/snmpd/action.c,v 1.58 2004/08/06 08:47:09 brandt Exp $
+ * $Begemot: action.c 517 2006-10-31 08:52:04Z brandt_h $
  *
  * Variable access for SNMPd
  */
 #include <sys/types.h>
 #include <sys/sysctl.h>
 #include <sys/un.h>
+#include <sys/utsname.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
@@ -48,6 +52,11 @@
 static const struct asn_oid
 	oid_begemotSnmpdModuleTable = OIDX_begemotSnmpdModuleTable;
 
+#ifdef __FreeBSD__
+static const struct asn_oid
+	oid_freeBSDVersion = OIDX_freeBSDVersion;
+#endif
+
 /*
  * Get a string value from the KERN sysctl subtree.
  */
@@ -100,39 +109,57 @@
 int
 init_actvals(void)
 {
-	char *v[4];
-	u_int i;
+	struct utsname uts;
+	char *hostid;
 	size_t len;
+#ifdef __FreeBSD__
+	char *rel, *p, *end;
+	u_long num;
+#endif
+
+	if (uname(&uts) == -1)
+		return (-1);
 
-	if ((systemg.name = act_getkernstring(KERN_HOSTNAME)) == NULL)
+	if ((systemg.name = strdup(uts.nodename)) == NULL)
 		return (-1);
 
-	for (i = 0; i < 4; i++)
-		v[1] = NULL;
+	if ((hostid = act_getkernint(KERN_HOSTID)) == NULL)
+		return (-1);
 
-	if ((v[0] = act_getkernstring(KERN_HOSTNAME)) == NULL)
-		goto err;
-	if ((v[1] = act_getkernint(KERN_HOSTID)) == NULL)
-		goto err;
-	if ((v[2] = act_getkernstring(KERN_OSTYPE)) == NULL)
-		goto err;
-	if ((v[3] = act_getkernstring(KERN_OSRELEASE)) == NULL)
-		goto err;
-
-	for (i = 0, len = 0; i < 4; i++)
-		len += strlen(v[i]) + 1;
-
-	if ((systemg.descr = malloc(len)) == NULL)
-		goto err;
-	sprintf(systemg.descr, "%s %s %s %s", v[0], v[1], v[2], v[3]);
+	len = strlen(uts.nodename) + 1;
+	len += strlen(hostid) + 1;
+	len += strlen(uts.sysname) + 1;
+	len += strlen(uts.release) + 1;
 
-	return (0);
+	if ((systemg.descr = malloc(len)) == NULL) {
+		free(hostid);
+		return (-1);
+	}
+	sprintf(systemg.descr, "%s %s %s %s", uts.nodename, hostid, uts.sysname,
+	    uts.release);
 
-  err:
-	for (i = 0; i < 4; i++)
-		if (v[i] != NULL)
-			free(v[i]);
-	return (-1);
+#ifdef __FreeBSD__
+	/*
+	 * Construct a FreeBSD oid
+	 */
+	systemg.object_id = oid_freeBSDVersion;
+	rel = uts.release;
+	while ((p = strsep(&rel, ".")) != NULL &&
+	    systemg.object_id.len < ASN_MAXOIDLEN) {
+		systemg.object_id.subs[systemg.object_id.len] = 0;
+		if (*p != '\0') {
+			num = strtoul(p, &end, 10);
+			if (end == p)
+				break;
+			systemg.object_id.subs[systemg.object_id.len] = num;
+		}
+		systemg.object_id.len++;
+	}
+#endif
+
+	free(hostid);
+
+	return (0);
 }
 
 
Index: main.c
===================================================================
RCS file: /home/cvs/src/contrib/bsnmp/snmpd/main.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -L contrib/bsnmp/snmpd/main.c -L contrib/bsnmp/snmpd/main.c -u -r1.2 -r1.3
--- contrib/bsnmp/snmpd/main.c
+++ contrib/bsnmp/snmpd/main.c
@@ -58,10 +58,6 @@
 #include "tree.h"
 #include "oid.h"
 
-#if !defined(INT32_MAX)
-#define	INT32_MAX	(0x7fffffff)
-#endif
-
 #define	PATH_PID	"/var/run/%s.pid"
 #define PATH_CONFIG	"/etc/%s.config"
 


More information about the Midnightbsd-cvs mailing list