From owner-svn-src-projects@freebsd.org Wed Jan 4 10:03:26 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D8812C9C209 for ; Wed, 4 Jan 2017 10:03:26 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 95E6A16D3; Wed, 4 Jan 2017 10:03:26 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v04A3PrK019430; Wed, 4 Jan 2017 10:03:25 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v04A3PrL019426; Wed, 4 Jan 2017 10:03:25 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201701041003.v04A3PrL019426@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Wed, 4 Jan 2017 10:03:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311281 - projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jan 2017 10:03:26 -0000 Author: ngie Date: Wed Jan 4 10:03:25 2017 New Revision: 311281 URL: https://svnweb.freebsd.org/changeset/base/311281 Log: Remove util.[ch]; start stubbing in bits from snmp_mibII Deleted: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/util.c projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/util.h Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/Makefile projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.c projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.h projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6_ifTable.c Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/Makefile ============================================================================== --- projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/Makefile Wed Jan 4 09:38:08 2017 (r311280) +++ projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/Makefile Wed Jan 4 10:03:25 2017 (r311281) @@ -10,7 +10,6 @@ SRCS+= ipv6_ifStatsTable.c SRCS+= ipv6_ifTable.c SRCS+= ipv6_netToMediaTable.c SRCS+= ipv6_routeTable.c -SRCS+= util.c XSYM= ${MOD} Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.c ============================================================================== --- projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.c Wed Jan 4 09:38:08 2017 (r311280) +++ projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.c Wed Jan 4 10:03:25 2017 (r311281) @@ -38,75 +38,11 @@ __FBSDID("$FreeBSD$"); static struct lmodule *module; -struct ipv6_interface_list ipv6_interfaces = - TAILQ_HEAD_INITIALIZER(ipv6_interfaces); - static const struct asn_oid oid_ipv6MIB = OIDX_ipv6MIB; static u_int ipv6_reg; int -load_ipv6_interface_table(void) -{ - struct ipv6_interface *ip = NULL; - struct if_nameindex *p = NULL, *ifnames = NULL; - - ifnames = if_nameindex(); - - for (p = ifnames; p != NULL && p->if_index; p++) { - ip = calloc(1, sizeof(struct ipv6_interface)); - if (ip == NULL) { - free_ipv6_interface_table(); - if_freenameindex(ifnames); - return (-1); - } - - ip->index = p->if_index; - - if ((ip->name = strdup(p->if_name)) == NULL) { - free_ipv6_interface_table(); - if_freenameindex(ifnames); - return (-1); - } - - INSERT_OBJECT_INT(ip, &ipv6_interfaces); - } - - if_freenameindex(ifnames); - - return (0); -} - -void -free_ipv6_interface_table(void) -{ - struct ipv6_interface *ip; - - /* - * XXX (ngie): TAILQ_FOREACH_SAFE would be better, but using mibII - * would be the best - */ - while ((ip = TAILQ_FIRST(&ipv6_interfaces)) != NULL) { - TAILQ_REMOVE(&ipv6_interfaces, ip, link); - free(ip->name); - free(ip); - ip = NULL; - } -} - -static int -if_countifindex(void) -{ - struct ipv6_interface *ip; - int count = 0; - - TAILQ_FOREACH(ip, &ipv6_interfaces, link) { - count++; - } - return count; -} - -int op_ipv6MIBObjects(struct snmp_context *ctx __unused, struct snmp_value *value, u_int sub, u_int iidx __unused, enum snmp_op op) { @@ -156,7 +92,7 @@ op_ipv6MIBObjects(struct snmp_context *c * XXX (ngie): this incorrectly assumes that all interfaces * are IPv6 enabled. */ - value->v.integer = if_countifindex(); + /*value->v.integer = if_countifindex()*/; break; default: return (SNMP_ERR_NOSUCHNAME); @@ -167,7 +103,6 @@ op_ipv6MIBObjects(struct snmp_context *c static void ipv6MIB_start(void) { - load_ipv6_interface_table(); ipv6_reg = or_register(&oid_ipv6MIB, "The (incomplete) MIB module for RFC 2465.", module); @@ -184,7 +119,6 @@ ipv6MIB_init(struct lmodule *mod, int ar static int ipv6MIB_fini(void) { - free_ipv6_interface_table(); or_unregister(ipv6_reg); Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.h ============================================================================== --- projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.h Wed Jan 4 09:38:08 2017 (r311280) +++ projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6.h Wed Jan 4 10:03:25 2017 (r311281) @@ -52,17 +52,4 @@ __FBSDID("$FreeBSD$"); #include "ipv6MIB_tree.h" -struct ipv6_interface { - TAILQ_ENTRY(ipv6_interface) link; - - char *name; /* The interface name */ - int index; /* The interface number */ -}; -TAILQ_HEAD(ipv6_interface_list, ipv6_interface); - -extern struct ipv6_interface_list ipv6_interfaces; - -int load_ipv6_interface_table(void); -void free_ipv6_interface_table(void); - #endif Modified: projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6_ifTable.c ============================================================================== --- projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6_ifTable.c Wed Jan 4 09:38:08 2017 (r311280) +++ projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6/ipv6_ifTable.c Wed Jan 4 10:03:25 2017 (r311281) @@ -29,31 +29,38 @@ __FBSDID("$FreeBSD$"); #include +#include +#include #include #include +#include +#include + #include "ipv6.h" -#include "util.h" int op_ipv6IfTable(struct snmp_context *ctx __unused, struct snmp_value *value, u_int sub, u_int iidx __unused, enum snmp_op op) { - struct ipv6_interface *ip; asn_subid_t which; switch (op) { case SNMP_OP_GETNEXT: +#if 0 ip = NEXT_OBJECT_INT(&ipv6_interfaces, &value->var, sub); if (ip == NULL) return SNMP_ERR_NOSUCHNAME; value->var.len = sub + 1; value->var.subs[sub] = ip->index; +#endif break; case SNMP_OP_GET: +#if 0 ip = FIND_OBJECT_INT(&ipv6_interfaces, &value->var, sub); if (ip == NULL) return (SNMP_ERR_NOSUCHNAME); +#endif break; case SNMP_OP_SET: case SNMP_OP_COMMIT: @@ -67,7 +74,9 @@ op_ipv6IfTable(struct snmp_context *ctx switch (which) { case LEAF_ipv6IfDescr: +#if 0 string_get(value, ip->name, strlen(ip->name)); +#endif break; case LEAF_ipv6IfLowerLayer: /* @@ -81,6 +90,7 @@ op_ipv6IfTable(struct snmp_context *ctx break; case LEAF_ipv6IfEffectiveMtu: { +#if 0 struct ifreq ifr; int s; @@ -95,6 +105,7 @@ op_ipv6IfTable(struct snmp_context *ctx value->v.uint32 = ifr.ifr_mtu; close(s); +#endif break; } case LEAF_ipv6IfIdentifier: @@ -106,62 +117,18 @@ op_ipv6IfTable(struct snmp_context *ctx break; case LEAF_ipv6IfPhysicalAddress: { - char *c, *tmp = NULL; - struct ifaddrs *ifap, *ifa; - struct sockaddr_dl sdl; - - if (getifaddrs(&ifap) == -1) { - string_get(value, "", 0); - break; - } - - for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { - - if (strcmp(ifa->ifa_name, ip->name) != 0) - continue; - - if (ifa->ifa_addr->sa_family != AF_LINK) - continue; - - /* - * XXX (ngie): the following string manipulation seems - * really hacky. This should emulate what ifconfig(8) - * does by opening a socket and throbbing a few ioctls - * to get the MAC address for an interface. - */ - memcpy(&sdl, ifa->ifa_addr, - sizeof(*(ifa->ifa_addr))); - - tmp = link_ntoa(&sdl); - - /* - * link_ntoa returns a string with the follow format - * :, - * e.g. "em0:0.50.56.30.1.26". - * - * We need the MAC address in colon-separated octet - * format. - */ - tmp = strchr(tmp, ':'); - if (tmp == NULL) - break; - tmp++; - /* convert the '.' to ':' */ - while ((c = strchr(tmp, '.')) != NULL) - *c = ':'; - /* now tmp == "0:50:56:30:1:26" */ - break; - } +#if 0 + get_physaddr(); if (tmp == NULL) string_get(value, "", 0); else string_get(value, tmp, strlen(tmp)); - - freeifaddrs(ifap); +#endif break; } case LEAF_ipv6IfAdminStatus: { +#if 0 struct ifaddrs *ifap, *ifa; if (getifaddrs(&ifap) == -1) { @@ -180,10 +147,12 @@ op_ipv6IfTable(struct snmp_context *ctx break; } freeifaddrs(ifap); +#endif break; } case LEAF_ipv6IfOperStatus: { +#if 0 struct ifaddrs *ifap, *ifa; if (getifaddrs(&ifap) == -1) { value->v.integer = 4; /* Unknown */ @@ -201,10 +170,12 @@ op_ipv6IfTable(struct snmp_context *ctx break; } freeifaddrs(ifap); +#endif break; } case LEAF_ipv6IfLastChange: { +#if 0 /* * XXX (ngie): not checking for error code from * gettimeofday(2). @@ -223,6 +194,7 @@ op_ipv6IfTable(struct snmp_context *ctx (uint32_t)((now.tv_sec - lastchange.tv_sec) * 100); value->v.uint32 += (uint32_t)((now.tv_usec - lastchange.tv_usec) / 10000); +#endif break; } default: