diff options
author | Tom Goff <thomas.goff@boeing.com> | 2010-11-10 13:00:54 -0800 |
---|---|---|
committer | Denis Ovsienko <infrastation@yandex.ru> | 2012-01-02 19:50:32 +0400 |
commit | a809d1cc54a621f4b31397ee5b8b79151baa4bf2 (patch) | |
tree | 2e8badac33516de66c4a0cdff9d3c7812ff65fa4 | |
parent | 13351032d1d1632dbaf540cf33b7bebbc748c415 (diff) |
lib: Add a function to delete all interfaces
if.c: (if_terminate) This adds a cleanup function that can be called
when a daemon exits, similar to vty_terminate().
-rw-r--r-- | lib/if.c | 18 | ||||
-rw-r--r-- | lib/if.h | 1 |
2 files changed, 19 insertions, 0 deletions
@@ -872,3 +872,21 @@ if_init (void) memset (&if_master, 0, sizeof if_master); } + +void +if_terminate (void) +{ + for (;;) + { + struct interface *ifp; + + ifp = listnode_head (iflist); + if (ifp == NULL) + break; + + if_delete (ifp); + } + + list_delete (iflist); + iflist = NULL; +} @@ -266,6 +266,7 @@ extern int if_is_pointopoint (struct interface *); extern int if_is_multicast (struct interface *); extern void if_add_hook (int, int (*)(struct interface *)); extern void if_init (void); +extern void if_terminate (void); extern void if_dump_all (void); extern const char *if_flag_dump(unsigned long); |