diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2019-06-18 16:27:21 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2019-06-30 21:29:24 +0200 |
commit | 8a68316eb96be1fecf91ca395f3321aa99997ad2 (patch) | |
tree | c38f9ef7d4733585c4658af5badbfa5f1a5e2ede /conf/conf.c | |
parent | bdf2e55d98636eacaac8188ee0bd000cc10d217c (diff) |
Nest: Add command to request graceful restart
When 'graceful down' command is entered, protocols are shut down
with regard to graceful restart. Namely Kernel protocol does
not remove routes and BGP protocol does not send notification,
just closes the connection.
Diffstat (limited to 'conf/conf.c')
-rw-r--r-- | conf/conf.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/conf/conf.c b/conf/conf.c index d6b3e8e8..0b797dec 100644 --- a/conf/conf.c +++ b/conf/conf.c @@ -492,19 +492,24 @@ config_init(void) * for switching to an empty configuration. */ void -order_shutdown(void) +order_shutdown(int gr) { struct config *c; if (shutting_down) return; - log(L_INFO "Shutting down"); + if (!gr) + log(L_INFO "Shutting down"); + else + log(L_INFO "Shutting down for graceful restart"); + c = lp_alloc(config->mem, sizeof(struct config)); memcpy(c, config, sizeof(struct config)); init_list(&c->protos); init_list(&c->tables); c->shutdown = 1; + c->gr_down = gr; config_commit(c, RECONFIG_HARD, 0); shutting_down = 1; |