Changeset View
Changeset View
Standalone View
Standalone View
contrib/bsnmp/snmp_mibII/mibII.c
| Show First 20 Lines • Show All 307 Lines • ▼ Show 20 Lines | |||||
| fetch_generic_mib(struct mibif *ifp, const struct ifmibdata *old) | fetch_generic_mib(struct mibif *ifp, const struct ifmibdata *old) | ||||
| { | { | ||||
| int name[6]; | int name[6]; | ||||
| size_t len; | size_t len; | ||||
| struct mibif_private *p = ifp->private; | struct mibif_private *p = ifp->private; | ||||
| name[0] = CTL_NET; | name[0] = CTL_NET; | ||||
| name[1] = PF_LINK; | name[1] = PF_LINK; | ||||
| name[2] = NETLINK_GENERIC; | name[2] = NETLINK_GENERIC_MIB; | ||||
| name[3] = IFMIB_IFDATA; | name[3] = IFMIB_IFDATA; | ||||
| name[4] = ifp->sysindex; | name[4] = ifp->sysindex; | ||||
| name[5] = IFDATA_GENERAL; | name[5] = IFDATA_GENERAL; | ||||
| len = sizeof(ifp->mib); | len = sizeof(ifp->mib); | ||||
| if (sysctl(name, nitems(name), &ifp->mib, &len, NULL, 0) == -1) { | if (sysctl(name, nitems(name), &ifp->mib, &len, NULL, 0) == -1) { | ||||
| if (errno != ENOENT) | if (errno != ENOENT) | ||||
| syslog(LOG_WARNING, "sysctl(ifmib, %s) failed %m", | syslog(LOG_WARNING, "sysctl(ifmib, %s) failed %m", | ||||
| ▲ Show 20 Lines • Show All 150 Lines • ▼ Show 20 Lines | if (ifp->mib.ifmd_data.ifi_baudrate > mibif_maxspeed) { | ||||
| mibif_reset_hc_timer(); | mibif_reset_hc_timer(); | ||||
| } | } | ||||
| /* | /* | ||||
| * linkspecific MIB | * linkspecific MIB | ||||
| */ | */ | ||||
| name[0] = CTL_NET; | name[0] = CTL_NET; | ||||
| name[1] = PF_LINK; | name[1] = PF_LINK; | ||||
| name[2] = NETLINK_GENERIC; | name[2] = NETLINK_GENERIC_MIB; | ||||
| name[3] = IFMIB_IFDATA; | name[3] = IFMIB_IFDATA; | ||||
| name[4] = ifp->sysindex; | name[4] = ifp->sysindex; | ||||
| name[5] = IFDATA_LINKSPECIFIC; | name[5] = IFDATA_LINKSPECIFIC; | ||||
| if (sysctl(name, nitems(name), NULL, &len, NULL, 0) == -1) { | if (sysctl(name, nitems(name), NULL, &len, NULL, 0) == -1) { | ||||
| syslog(LOG_WARNING, "sysctl linkmib estimate (%s): %m", | syslog(LOG_WARNING, "sysctl linkmib estimate (%s): %m", | ||||
| ifp->name); | ifp->name); | ||||
| if (ifp->specmib != NULL) { | if (ifp->specmib != NULL) { | ||||
| ifp->specmib = NULL; | ifp->specmib = NULL; | ||||
| ▲ Show 20 Lines • Show All 450 Lines • ▼ Show 20 Lines | mib_refresh_iflist(void) | ||||
| len = sizeof(count); | len = sizeof(count); | ||||
| if (sysctlbyname("net.link.generic.system.ifcount", &count, &len, | if (sysctlbyname("net.link.generic.system.ifcount", &count, &len, | ||||
| NULL, 0) == -1) { | NULL, 0) == -1) { | ||||
| syslog(LOG_ERR, "ifcount: %m"); | syslog(LOG_ERR, "ifcount: %m"); | ||||
| return; | return; | ||||
| } | } | ||||
| name[0] = CTL_NET; | name[0] = CTL_NET; | ||||
| name[1] = PF_LINK; | name[1] = PF_LINK; | ||||
| name[2] = NETLINK_GENERIC; | name[2] = NETLINK_GENERIC_MIB; | ||||
| name[3] = IFMIB_IFDATA; | name[3] = IFMIB_IFDATA; | ||||
| name[5] = IFDATA_GENERAL; | name[5] = IFDATA_GENERAL; | ||||
| for (idx = 1; idx <= count; idx++) { | for (idx = 1; idx <= count; idx++) { | ||||
| name[4] = idx; | name[4] = idx; | ||||
| len = sizeof(mib); | len = sizeof(mib); | ||||
| if (sysctl(name, nitems(name), &mib, &len, NULL, 0) == -1) { | if (sysctl(name, nitems(name), &mib, &len, NULL, 0) == -1) { | ||||
| if (errno == ENOENT) | if (errno == ENOENT) | ||||
| continue; | continue; | ||||
| ▲ Show 20 Lines • Show All 912 Lines • Show Last 20 Lines | |||||