From: Tom Goff Date: Wed, 10 Nov 2010 21:00:54 +0000 (-0800) Subject: lib: Add a function to delete all interfaces X-Git-Tag: frr-2.0-rc1~1918^2~8 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=a809d1cc54a621f4b31397ee5b8b79151baa4bf2;p=mirror%2Ffrr.git 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(). --- diff --git a/lib/if.c b/lib/if.c index 41115b0f09..31c60e3fe8 100644 --- a/lib/if.c +++ b/lib/if.c @@ -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; +} diff --git a/lib/if.h b/lib/if.h index c99ab81bc4..841ce51ec5 100644 --- a/lib/if.h +++ b/lib/if.h @@ -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);