summaryrefslogtreecommitdiff
path: root/usr.sbin/ospfd/ospfe.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/ospfd/ospfe.c')
-rw-r--r--usr.sbin/ospfd/ospfe.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/usr.sbin/ospfd/ospfe.c b/usr.sbin/ospfd/ospfe.c
index 0ab896ad378..3279b8c021b 100644
--- a/usr.sbin/ospfd/ospfe.c
+++ b/usr.sbin/ospfd/ospfe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ospfe.c,v 1.22 2005/05/26 18:46:16 norby Exp $ */
+/* $OpenBSD: ospfe.c,v 1.23 2005/05/26 19:54:49 norby Exp $ */
/*
* Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org>
@@ -168,10 +168,12 @@ ospfe(struct ospfd_conf *xconf, int pipe_parent2ospfe[2], int pipe_ospfe2rde[2],
/* start interfaces */
LIST_FOREACH(area, &oeconf->area_list, entry) {
LIST_FOREACH(iface, &area->iface_list, entry) {
- if_init(xconf, iface);
- if (if_fsm(iface, IF_EVT_UP)) {
- log_debug("error starting interface %s",
- iface->name);
+ if (!iface->passive) {
+ if_init(xconf, iface);
+ if (if_fsm(iface, IF_EVT_UP)) {
+ log_debug("error starting interface %s",
+ iface->name);
+ }
}
}
}
@@ -192,12 +194,14 @@ ospfe_shutdown(void)
/* stop all interfaces and remove all areas */
LIST_FOREACH(area, &oeconf->area_list, entry) {
LIST_FOREACH(iface, &area->iface_list, entry) {
- if (if_fsm(iface, IF_EVT_DOWN)) {
- log_debug("error stopping interface %s",
- iface->name);
+ if (!iface->passive) {
+ if (if_fsm(iface, IF_EVT_DOWN)) {
+ log_debug("error stopping interface %s",
+ iface->name);
+ }
}
+ area_del(area);
}
- area_del(area);
}
/* clean up */