diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2013-12-13 23:13:58 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2013-12-13 23:13:58 +0200 |
commit | 6944626b511d34a20d1ce1cc6320056af214ba33 (patch) | |
tree | 4ab59d76d4014afafea32f30fa42abe4788abdc6 | |
parent | 7b3d93eb5ea07cfc3330105b1caa58fcd68076e6 (diff) | |
download | jumper-6944626b511d34a20d1ce1cc6320056af214ba33.tar.gz jumper-6944626b511d34a20d1ce1cc6320056af214ba33.tar.bz2 |
Undo decommission marks if configuration fails.
* src/config.c (config_finish): Call listeners_undo_decommission
after configuration errors.
* src/jumper.h (listeners_undo_decommission): New proto.
* src/listener.c (listeners_undo_decommission): New function.
-rw-r--r-- | src/config.c | 3 | ||||
-rw-r--r-- | src/jumper.h | 2 | ||||
-rw-r--r-- | src/listener.c | 10 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/config.c b/src/config.c index 05bcacd..c9004b7 100644 --- a/src/config.c +++ b/src/config.c @@ -833,6 +833,7 @@ config_finish(struct grecs_node *tree, int reconfig) config.facility = newcfg.facility; config.tag = newcfg.tag; } - } + } else if (reconfig) + listeners_undo_decommission(); return rc; } diff --git a/src/jumper.h b/src/jumper.h index b1d7b83..744bb6d 100644 --- a/src/jumper.h +++ b/src/jumper.h @@ -234,7 +234,7 @@ void listeners_init(void); void listeners_cleanup(void); int listeners_run_action(int a); void listeners_decommission(void); - +void listeners_undo_decommission(void); extern listener_list_t llist; extern listener_list_t clist; diff --git a/src/listener.c b/src/listener.c index de34fcd..9b15580 100644 --- a/src/listener.c +++ b/src/listener.c @@ -431,7 +431,15 @@ listeners_decommission() lp = next; } } - + +void +listeners_undo_decommission() +{ + listener_t *lp; + + for (lp = llist.head; lp; lp = lp->next) + lp->decommission = 0; +} void listener_print_status(listener_t *lp) |