summaryrefslogtreecommitdiff
path: root/isisd/isis_dynhn.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_dynhn.c')
-rw-r--r--isisd/isis_dynhn.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/isisd/isis_dynhn.c b/isisd/isis_dynhn.c
index e34c59be11..244f388c26 100644
--- a/isisd/isis_dynhn.c
+++ b/isisd/isis_dynhn.c
@@ -49,11 +49,23 @@ void dyn_cache_init(struct isis *isis)
{
if (dyn_cache == NULL)
dyn_cache = list_new();
- thread_add_timer(master, dyn_cache_cleanup, isis, 120,
- &isis->t_dync_clean);
+ if (!CHECK_FLAG(im->options, F_ISIS_UNIT_TEST))
+ thread_add_timer(master, dyn_cache_cleanup, isis, 120,
+ &isis->t_dync_clean);
return;
}
+void dyn_cache_cleanup_all(void)
+{
+ struct listnode *node, *nnode;
+ struct isis_dynhn *dyn;
+
+ for (ALL_LIST_ELEMENTS(dyn_cache, node, nnode, dyn)) {
+ list_delete_node(dyn_cache, node);
+ XFREE(MTYPE_ISIS_DYNHN, dyn);
+ }
+}
+
static int dyn_cache_cleanup(struct thread *thread)
{
struct listnode *node, *nnode;