Date: Wed, 4 Jan 2017 10:03:25 +0000 (UTC) From: Ngie Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r311281 - projects/bsnmp-ipv6-mib/usr.sbin/bsnmpd/modules/snmp_ipv6 Message-ID: <201701041003.v04A3PrL019426@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 <sys/types.h> +#include <net/if.h> +#include <net/if_mib.h> #include <netinet/in.h> #include <netinet/ip6.h> +#include <bsnmp/snmpmod.h> +#include <bsnmp/snmp_mibII.h> + #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 - * <interface>:<mac-address-period-separated-octets>, - * 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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201701041003.v04A3PrL019426>