diff options
author | Tom Goff <thomas.goff@boeing.com> | 2010-11-10 22:01:41 +0100 |
---|---|---|
committer | Paul Jakma <paul@quagga.net> | 2011-03-21 14:31:16 +0100 |
commit | ae2254aa7f2eb7436734f497658f1f26f4bf37c7 (patch) | |
tree | 8734f0e2aa855b90d9ec5cb961cd9990b5574905 /ospf6d/ospf6_message.c | |
parent | ospf6d: Remove obsolete code (diff) | |
download | frr-ae2254aa7f2eb7436734f497658f1f26f4bf37c7.tar.xz frr-ae2254aa7f2eb7436734f497658f1f26f4bf37c7.zip |
ospf6d: Have ospf6d cleanup when it terminates normally
A clean exit makes it easier to use memory debuggers.
* ospf6_asbr.c: (ospf6_asbr_terminate) Add a function to do route map
cleanup.
* ospf6_lsa.c: (ospf6_lsa_terminate) Add a function to cleanup the lsa
handler vector.
* ospf6_main.c: (ospf6_exit) Add an function that causes ospf6d to
gracefully exit.
* ospf6_message.c: (ospf6_message_terminate) Add a function that frees
the send and receive buffers.
* ospf6_top.c: (ospf6_delete) Enable the ospf6_delete() function.
Disable ospf6 before freeing everything.
Diffstat (limited to 'ospf6d/ospf6_message.c')
-rw-r--r-- | ospf6d/ospf6_message.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c index 790fc0ae7..d06eba26b 100644 --- a/ospf6d/ospf6_message.c +++ b/ospf6d/ospf6_message.c @@ -1168,6 +1168,24 @@ ospf6_iobuf_size (unsigned int size) return iobuflen; } +void +ospf6_message_terminate (void) +{ + if (recvbuf) + { + XFREE (MTYPE_OSPF6_MESSAGE, recvbuf); + recvbuf = NULL; + } + + if (sendbuf) + { + XFREE (MTYPE_OSPF6_MESSAGE, sendbuf); + sendbuf = NULL; + } + + iobuflen = 0; +} + int ospf6_receive (struct thread *thread) { |