summaryrefslogtreecommitdiff
path: root/usr.sbin/ospf6d/carp.c
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2009-09-30 12:02:19 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2009-09-30 12:02:19 +0000
commitc42a3485bacc5f96c5f4dfe94bba50f91410fe06 (patch)
tree2feb65507a9a31fb1b2d4b5a0d5c0a4b566266dd /usr.sbin/ospf6d/carp.c
parente4003f04d127f6929ee07e6aad8e930acb071b42 (diff)
carp_demote_ioctl() can handle more then +/-1 steps so there is no need to
loop in the shutdown case. OK henning@
Diffstat (limited to 'usr.sbin/ospf6d/carp.c')
-rw-r--r--usr.sbin/ospf6d/carp.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/usr.sbin/ospf6d/carp.c b/usr.sbin/ospf6d/carp.c
index d34c277deab..d60ca911a58 100644
--- a/usr.sbin/ospf6d/carp.c
+++ b/usr.sbin/ospf6d/carp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: carp.c,v 1.1 2007/10/08 10:44:50 norby Exp $ */
+/* $OpenBSD: carp.c,v 1.2 2009/09/30 12:02:18 claudio Exp $ */
/*
* Copyright (c) 2006 Henning Brauer <henning@openbsd.org>
@@ -90,9 +90,8 @@ carp_demote_shutdown(void)
while ((c = TAILQ_FIRST(&carpgroups)) != NULL) {
TAILQ_REMOVE(&carpgroups, c, entry);
- for (; c->changed_by > 0; c->changed_by--)
- if (c->do_demote)
- carp_demote_ioctl(c->group, -1);
+ if (c->do_demote && c->changed_by > 0)
+ carp_demote_ioctl(c->group, -c->changed_by);
free(c->group);
free(c);