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/ChangeLog | 7 +++++++ ospf6d/ospf6_interface.c | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'ospf6d') diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog index d718fc38..87b4fac7 100644 --- a/ospf6d/ChangeLog +++ b/ospf6d/ChangeLog @@ -1,3 +1,10 @@ +2005-06-24 Yasuhiro Ohara + + * 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. + 2005-05-31 Hasso Tepper * ospf6d.c: No need for double ';'. Fixes parsing "show ipv6 ospf6 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