summaryrefslogtreecommitdiff
path: root/sys/net
diff options
context:
space:
mode:
authorMarco Pfatschbacher <mpf@cvs.openbsd.org>2010-04-25 17:38:54 +0000
committerMarco Pfatschbacher <mpf@cvs.openbsd.org>2010-04-25 17:38:54 +0000
commit5423a7142fc3ef05c909fe26338c0f6914e80312 (patch)
treec58a5aade62001862e15f95d46e7e81748f8d9e1 /sys/net
parent083209be9a6b6859f96522362fd5cee27e5b10aa (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.c6
-rw-r--r--sys/net/if_pfsync.c13
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");