diff options
author | Marco Pfatschbacher <mpf@cvs.openbsd.org> | 2010-04-25 17:38:54 +0000 |
---|---|---|
committer | Marco Pfatschbacher <mpf@cvs.openbsd.org> | 2010-04-25 17:38:54 +0000 |
commit | 5423a7142fc3ef05c909fe26338c0f6914e80312 (patch) | |
tree | c58a5aade62001862e15f95d46e7e81748f8d9e1 /sys/net | |
parent | 083209be9a6b6859f96522362fd5cee27e5b10aa (diff) |
Properly adjust group demotion counters when groups are added or
removed. Extend carp demote logging to also show the reason for
the demote. Return EINVAL instead of ERANGE if a carpdemote request
is out range. Requested from otto.
OK mcbride, henning.
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if.c | 6 | ||||
-rw-r--r-- | sys/net/if_pfsync.c | 13 |
2 files changed, 11 insertions, 8 deletions
diff --git a/sys/net/if.c b/sys/net/if.c index 64e34aafb64..2a8fe3c5268 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if.c,v 1.213 2010/04/17 18:31:41 stsp Exp $ */ +/* $OpenBSD: if.c,v 1.214 2010/04/25 17:38:53 mpf Exp $ */ /* $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $ */ /* @@ -1512,10 +1512,10 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct proc *p) case SIOCAIFGROUP: if ((error = suser(p, 0))) return (error); - (*ifp->if_ioctl)(ifp, cmd, data); /* XXX error check */ ifgr = (struct ifgroupreq *)data; if ((error = if_addgroup(ifp, ifgr->ifgr_group))) return (error); + (*ifp->if_ioctl)(ifp, cmd, data); /* XXX error check */ break; case SIOCGIFGROUP: @@ -2000,7 +2000,7 @@ if_setgroupattribs(caddr_t data) demote = ifgr->ifgr_attrib.ifg_carp_demoted; if (demote + ifg->ifg_carp_demoted > 0xff || demote + ifg->ifg_carp_demoted < 0) - return (ERANGE); + return (EINVAL); ifg->ifg_carp_demoted += demote; diff --git a/sys/net/if_pfsync.c b/sys/net/if_pfsync.c index e3329f77d79..8e279d0091e 100644 --- a/sys/net/if_pfsync.c +++ b/sys/net/if_pfsync.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_pfsync.c,v 1.144 2010/03/23 22:34:49 pyr Exp $ */ +/* $OpenBSD: if_pfsync.c,v 1.145 2010/04/25 17:38:53 mpf Exp $ */ /* * Copyright (c) 2002 Michael Shalayeff @@ -353,7 +353,7 @@ pfsync_clone_destroy(struct ifnet *ifp) timeout_del(&sc->sc_tmo); #if NCARP > 0 if (!pfsync_sync_ok) - carp_group_demote_adj(&sc->sc_if, -1); + carp_group_demote_adj(&sc->sc_if, -1, "pfsync destroy"); #endif #if NBPFILTER > 0 bpfdetach(ifp); @@ -1194,7 +1194,8 @@ pfsync_in_bus(struct pfsync_pkt *pkt, caddr_t buf, int len, int count) timeout_del(&sc->sc_bulkfail_tmo); #if NCARP > 0 if (!pfsync_sync_ok) - carp_group_demote_adj(&sc->sc_if, -1); + carp_group_demote_adj(&sc->sc_if, -1, + "pfsync bulk done"); #endif pfsync_sync_ok = 1; DPFPRINTF(LOG_INFO, "received valid bulk update end"); @@ -1888,7 +1889,8 @@ pfsync_request_full_update(struct pfsync_softc *sc) sc->sc_ureq_sent = time_uptime; #if NCARP > 0 if (pfsync_sync_ok) - carp_group_demote_adj(&sc->sc_if, 1); + carp_group_demote_adj(&sc->sc_if, 1, + "pfsync bulk start"); #endif pfsync_sync_ok = 0; DPFPRINTF(LOG_INFO, "requesting bulk update"); @@ -2261,7 +2263,8 @@ pfsync_bulk_fail(void *arg) sc->sc_bulk_tries = 0; #if NCARP > 0 if (!pfsync_sync_ok) - carp_group_demote_adj(&sc->sc_if, -1); + carp_group_demote_adj(&sc->sc_if, -1, + "pfsync bulk fail"); #endif pfsync_sync_ok = 1; DPFPRINTF(LOG_ERR, "failed to receive bulk update"); |