socsvn commit: r271793 - soc2014/shonali/head/usr.sbin/bsnmpd/tools/libbsnmptools

shonali at FreeBSD.org shonali at FreeBSD.org
Sun Aug 3 13:50:06 UTC 2014


Author: shonali
Date: Sun Aug  3 13:50:05 2014
New Revision: 271793
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=271793

Log:
  Added separate calls for ipv6 in bsnmptools.c
  

Modified:
  soc2014/shonali/head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c

Modified: soc2014/shonali/head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
==============================================================================
--- soc2014/shonali/head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c	Sun Aug  3 12:19:45 2014	(r271792)
+++ soc2014/shonali/head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c	Sun Aug  3 13:50:05 2014	(r271793)
@@ -1092,43 +1092,46 @@
 static char *
 snmp_ip2asn_oid(char *str, struct asn_oid *oid)
 {
-	uint32_t v;
-	int32_t i;
-	char *endptr, *ptr;
+        uint32_t v;
+        int32_t i;
+        char *endptr, *ptr;
+
+        ptr = str;
+		
+	for (i = 0; i < 4; i++) {
+		v = strtoul(ptr, &endptr, 10);
+		if (v > 0xff)
+			return (NULL);
+		if (*endptr != '.' && strchr("],\0", *endptr) == NULL && i != 3)
+			return (NULL);
+		if (snmp_suboid_append(oid, (asn_subid_t) v) < 0)
+			return (NULL);
+		ptr = endptr + 1;
+	}
+        return (endptr);
+}
 
-	ptr = str;
-        
-  	switch (sizeof(*str)) {
+static char *
+snmp_ipv62asn_oid(char *str, struct asn_oid *oid)
+{
+        uint32_t v;
+        int32_t i;
+        char *endptr, *ptr;
 
-                case 4:
-			for (i = 0; i < 4; i++) {
-				v = strtoul(ptr, &endptr, 10);
-				if (v > 0xff)
-					return (NULL);
-				if (*endptr != '.' && strchr("],\0", *endptr) == NULL && i != 3)
-					return (NULL);
-				if (snmp_suboid_append(oid, (asn_subid_t) v) < 0)
-					return (NULL);
-				ptr = endptr + 1;
-		        }
-                case 16:
-			for (i = 0; i < 16; i++) {
-				v = strtoul(ptr, &endptr, 16);
-				if (v > 0xff)
-					return (NULL);
-				if (*endptr != ':' && strchr("],\0", *endptr) == NULL && i != 15)
-					return (NULL);
-				if (snmp_suboid_append(oid, (asn_subid_t) v) < 0)
-					return (NULL);
-				ptr = endptr + 1;
-		        }
-				
-		default:
-                        return (NULL);
-        }
-	return (endptr);
+        ptr = str;
+
+	for (i = 0; i < 16; i++) {
+		v = strtoul(ptr, &endptr, 16);
+		if (*endptr != ':' && strchr("],\0", *endptr) == NULL && i != 15)
+			return (NULL);
+		if (snmp_suboid_append(oid, (asn_subid_t) v) < 0)
+			return (NULL);
+		ptr = endptr + 1;
+	}
+        return (endptr);
 }
 
+
 /* 32-bit counter, gauge, timeticks. */
 static char *
 snmp_uint2asn_oid(char *str, struct asn_oid *oid)
@@ -1756,18 +1759,18 @@
 static void
 snmp_output_ipaddress(struct snmp_toolinfo *snmptoolctx, uint8_t *ip)
 {
-	if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
-		fprintf(stdout, "%s : ",
-		    syntax_strings[SNMP_SYNTAX_IPADDRESS].str);
+        if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
+            fprintf(stdout, "%s : ", syntax_strings[SNMP_SYNTAX_IPADDRESS].str);	
+		fprintf(stdout, "%u.%u.%u.%u", ip[0], ip[1], ip[2], ip[3]);
         
-        switch (sizeof(*ip)) {
-                case 4:
-			fprintf(stdout, "%u.%u.%u.%u", ip[0], ip[1], ip[2], ip[3]);
-                case 16:
-	     		fprintf(stdout, "%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u", ip[0], ip[1], ip[2], ip[3], ip[4], ip[5], ip[6], ip[7], ip[8], ip[9], ip[10], ip[11], ip[12], ip[13], ip[14], ip[15]);
-		default:
-                        return (NULL);
-        } 
+}
+
+static void
+snmp_output_ip6address(struct snmp_toolinfo *snmptoolctx, uint8_t *ip)
+{
+        if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
+                fprintf(stdout, "%s : ", syntax_strings[SNMP_SYNTAX_IPADDRESS].str);    
+			fprintf(stdout, "%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u.%u", ip[0], ip[1], ip[2], ip[3], ip[4], ip[5], ip[6], ip[7], ip[8], ip[9], ip[10], ip[11], ip[12], ip[13], ip[14], ip[15]);
 }
 
 static void
@@ -1958,16 +1961,16 @@
 	    case SNMP_SYNTAX_IPADDRESS:
 		if (temp.len < 4)
 			return (-1);
-                 
-                switch (sizeof(temp.len)) {
+                uint8_t *ip; 
+                switch (temp.len) {
                 	case 4:
-				uint8_t ip[4];
-				for (bytes = 0; bytes < 4; bytes++)
+		                ip = malloc(sizeof(u_int8_t)*4);	
+            			for (bytes = 0; bytes < 4; bytes++)
 					ip[bytes] = temp.subs[bytes];
 		     		snmp_output_ipaddress(snmptoolctx, ip);
 				bytes = 4;
 			case 16:		
-				uint8_t ip[16];		
+			        ip = malloc(sizeof(u_int8_t)*16); 	
 				for (bytes = 0; bytes < 16; bytes++)
 					ip[bytes] = temp.subs[bytes];
 		  	        snmp_output_ipaddress(snmptoolctx, ip);


More information about the svn-soc-all mailing list