]> git.puffer.fish Git - mirror/frr.git/commitdiff
* ospf6_interface.c: fix the way inactivity_timer is called. Because
authorhasso <hasso>
Fri, 24 Jun 2005 07:50:12 +0000 (07:50 +0000)
committerhasso <hasso>
Fri, 24 Jun 2005 07:50:12 +0000 (07:50 +0000)
  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
ospf6d/ospf6_interface.c

index d718fc380fd1af051bde97c064635025278f481e..87b4fac7766543bd441d6de1bfafe2ca1ca0c391 100644 (file)
@@ -1,3 +1,10 @@
+2005-06-24 Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
+
+       * 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 <hasso at quagga.net>
 
        * ospf6d.c: No need for double ';'. Fixes parsing "show ipv6 ospf6
index 0614e44099618f4507329cb61f80e0c5e8790e03..3ca5e2d1e64af22ead5881cdf273be83091ddfd0 100644 (file)
@@ -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;