From 3e834b122b982d459e7a273c049a07050794e46a Mon Sep 17 00:00:00 2001 From: hasso Date: Fri, 24 Jun 2005 07:50:12 +0000 Subject: * ospf6_interface.c: fix the way inactivity_timer is called. Because inactivity_timer() deletes the neighbor from the neighbor_list, it cannot be called by thread_execute() from inner side of the neighbor_list for-loop. (Although crash was already fixed in Quagga, it's better follow the GNU Zebra logic). [port from GNU Zebra] --- ospf6d/ospf6_interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'ospf6d/ospf6_interface.c') diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 0614e440..3ca5e2d1 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -1069,7 +1069,7 @@ DEFUN (ipv6_ospf6_ifmtu, for (ALL_LIST_ELEMENTS (oi->neighbor_list, node, nnode, on)) { THREAD_OFF (on->inactivity_timer); - thread_execute (master, inactivity_timer, on, 0); + thread_add_event (master, inactivity_timer, on, 0); } return CMD_SUCCESS; @@ -1117,7 +1117,7 @@ DEFUN (no_ipv6_ospf6_ifmtu, for (ALL_LIST_ELEMENTS (oi->neighbor_list, node, nnode, on)) { THREAD_OFF (on->inactivity_timer); - thread_execute (master, inactivity_timer, on, 0); + thread_add_event (master, inactivity_timer, on, 0); } return CMD_SUCCESS; @@ -1352,7 +1352,7 @@ DEFUN (ipv6_ospf6_passive, for (ALL_LIST_ELEMENTS (oi->neighbor_list, node, nnode, on)) { THREAD_OFF (on->inactivity_timer); - thread_execute (master, inactivity_timer, on, 0); + thread_add_event (master, inactivity_timer, on, 0); } return CMD_SUCCESS; -- cgit v1.2.1