summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2006-02-10 16:49:49 +0000
committerharti <harti@FreeBSD.org>2006-02-10 16:49:49 +0000
commit6f93f5275eb1ab97042df92082f4645e71c907a0 (patch)
tree14b738cbf02256ab0d740715bc355e0ff3241b53 /contrib
parentad4bab46b0fd2bbc790195fcf0334169a05b1410 (diff)
parentaf0ed09791e779050efb210d9304ae1e7100c129 (diff)
downloadFreeBSD-src-6f93f5275eb1ab97042df92082f4645e71c907a0.zip
FreeBSD-src-6f93f5275eb1ab97042df92082f4645e71c907a0.tar.gz
This commit was generated by cvs2svn to compensate for changes in r155506,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/bsnmp/snmp_mibII/mibII.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/contrib/bsnmp/snmp_mibII/mibII.c b/contrib/bsnmp/snmp_mibII/mibII.c
index aa5cb83..98a16d4 100644
--- a/contrib/bsnmp/snmp_mibII/mibII.c
+++ b/contrib/bsnmp/snmp_mibII/mibII.c
@@ -306,15 +306,17 @@ mib_fetch_ifmib(struct mibif *ifp)
return (-1);
}
- if (ifp->trap_enable) {
- if (!(oldmib.ifmd_flags & IFF_UP)) {
- if (ifp->mib.ifmd_flags & IFF_UP)
- link_trap(ifp, 1);
- } else {
- if (!(ifp->mib.ifmd_flags & IFF_UP))
- link_trap(ifp, 0);
- }
- }
+ /*
+ * Quoting RFC2863, 3.1.15: "... LinkUp and linkDown traps are
+ * generated just after ifOperStatus leaves, or just before it
+ * enters, the down state, respectively;"
+ */
+ if (ifp->trap_enable && ifp->mib.ifmd_data.ifi_link_state !=
+ oldmib.ifmd_data.ifi_link_state &&
+ (ifp->mib.ifmd_data.ifi_link_state == LINK_STATE_DOWN ||
+ oldmib.ifmd_data.ifi_link_state == LINK_STATE_DOWN))
+ link_trap(ifp, ifp->mib.ifmd_data.ifi_link_state ==
+ LINK_STATE_UP ? 1 : 0);
ifp->flags &= ~(MIBIF_HIGHSPEED | MIBIF_VERYHIGHSPEED);
if (ifp->mib.ifmd_data.ifi_baudrate > 20000000) {
@@ -625,6 +627,7 @@ mibif_create(u_int sysindex, const char *name)
ifp->counter_disc = get_ticks();
}
ifp->index = map->ifindex;
+ ifp->mib.ifmd_data.ifi_link_state = LINK_STATE_UNKNOWN;
INSERT_OBJECT_INT(ifp, &mibif_list);
mib_if_number++;
OpenPOWER on IntegriCloud