From: Martin Mares Date: Sat, 13 May 2000 11:01:41 +0000 (+0000) Subject: Manual enable/disable works right. X-Git-Tag: v1.2.0~913 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4bfafa1008918cf904ede023feb18fa4cb7d524;p=thirdparty%2Fbird.git Manual enable/disable works right. --- diff --git a/proto/static/static.c b/proto/static/static.c index 7df62ed0c..c380aeb26 100644 --- a/proto/static/static.c +++ b/proto/static/static.c @@ -65,6 +65,7 @@ static_remove(struct proto *p, struct static_route *r) static void static_add(struct proto *p, struct static_route *r) { + DBG("static_add(%I/%d,%d)\n", r->net, r->masklen, r->dest); switch (r->dest) { case RTD_ROUTER: @@ -101,6 +102,20 @@ static_start(struct proto *p) return PS_UP; } +static int +static_shutdown(struct proto *p) +{ + struct static_config *c = (void *) p->cf; + struct static_route *r; + + DBG("Static: prepare for landing!\n"); + WALK_LIST(r, c->iface_routes) + static_remove(p, r); + WALK_LIST(r, c->other_routes) + static_remove(p, r); + return PS_DOWN; +} + static void static_neigh_notify(struct neighbor *n) { @@ -250,6 +265,7 @@ struct protocol proto_static = { init: static_init, dump: static_dump, start: static_start, + shutdown: static_shutdown, reconfigure: static_reconfigure, };