From owner-svn-soc-all@FreeBSD.ORG Sun Aug 3 10:47:39 2014 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CDFC31ED for ; Sun, 3 Aug 2014 10:47:39 +0000 (UTC) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BA83D2CD7 for ; Sun, 3 Aug 2014 10:47:39 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.9/8.14.9) with ESMTP id s73Aldp3065117 for ; Sun, 3 Aug 2014 10:47:39 GMT (envelope-from shonali@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.9/8.14.9/Submit) id s73Aldw5065115 for svn-soc-all@FreeBSD.org; Sun, 3 Aug 2014 10:47:39 GMT (envelope-from shonali@FreeBSD.org) Date: Sun, 3 Aug 2014 10:47:39 GMT Message-Id: <201408031047.s73Aldw5065115@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to shonali@FreeBSD.org using -f From: shonali@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r271786 - soc2014/shonali/head/usr.sbin/bsnmpd/tools/bsnmptools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Aug 2014 10:47:40 -0000 Author: shonali Date: Sun Aug 3 10:47:38 2014 New Revision: 271786 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=271786 Log: Added separate ipv6 function for parse_ip & add_ip_syntax in bsnmpget.c Modified: soc2014/shonali/head/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c Modified: soc2014/shonali/head/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c ============================================================================== --- soc2014/shonali/head/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c Sun Aug 3 09:53:34 2014 (r271785) +++ soc2014/shonali/head/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c Sun Aug 3 10:47:38 2014 (r271786) @@ -603,40 +603,42 @@ static int32_t parse_ip(struct snmp_value * value, char * val) { - uint32_t v; - int32_t i; - char *endptr, *str; - - str = val; - - switch (sizeof(*addrs)) { - - case 4: - for (i = 0; i < 4; i++) { - v = strtoul(str, &endptr, 10); - if (v > 0xff) - return (-1); - if (*endptr != '.' && *endptr != '\0' && i != 3) - break; - str = endptr + 1; - value->v.ipaddress[i] = (uint8_t) v; - } - case 16: - for (i = 0; i < 16; i++) { - v = strtoul(str, &endptr, 16); - if (v > 0xff) - return (-1); - if (*endptr != ':' && *endptr != '\0' && i != 15) - break; - str = endptr + 1; - value->v.ipaddress[i] = (uint8_t) v; - } - - default: - return (NULL); - } - value->syntax = SNMP_SYNTAX_IPADDRESS; - return (0); + uint32_t v; + int32_t i; + char *endptr, *str; + + str = val; + for (i = 0; i < 4; i++) { + v = strtoul(str, &endptr, 10); + if (v > 0xff) + return (-1); + if (*endptr != '.' && *endptr != '\0' && i != 3) + break; + str = endptr + 1; + value->v.ipaddress[i] = (uint8_t) v; + } + value->syntax = SNMP_SYNTAX_IPADDRESS; + return (0); +} + +static int32_t +parse_ip6(struct snmp_value * value, char * val) +{ + uint32_t v; + int32_t i; + char *endptr, *str; + + str = val; + for (i = 0; i < 16; i++) { + v = strtoul(str, &endptr, 16); + if (*endptr != ':' && *endptr != '\0' && i != 15) + break; + str = endptr + 1; + value->v.ipaddress6[i] = (uint8_t) v; + } + + value->syntax = SNMP_SYNTAX_IPADDRESS; + return (0); } static int32_t @@ -960,25 +962,30 @@ static int32_t add_ip_syntax(struct snmp_value *dst, struct snmp_value *src) { - int8_t i; + int8_t i; - dst->syntax = SNMP_SYNTAX_IPADDRESS; - - switch (sizeof(src->v.ipaddress)) { - - case 4: - for (i = 0; i < 4; i++) - dst->v.ipaddress[i] = src->v.ipaddress[i]; - case 16: - for (i = 0; i < 16; i++) - dst->v.ipaddress[i] = src->v.ipaddress[i]; - default: - return (NULL); - } - return (1); + dst->syntax = SNMP_SYNTAX_IPADDRESS; + + for (i = 0; i < 4; i++) + dst->v.ipaddress[i] = src->v.ipaddress[i]; + + return (1); } static int32_t +add_ip6_syntax(struct snmp_value *dst, struct snmp_value *src) +{ + int8_t i; + + dst->syntax = src->syntax; + + for (i = 0; i < 16; i++) + dst->v.ipaddress6[i] = src->v.ipaddress6[i]; + + return (1); +} + +static int32_t add_octstring_syntax(struct snmp_value *dst, struct snmp_value *src) { if (src->v.octetstring.len > ASN_MAXOCTETSTRING) {