]> git.proxmox.com Git - mirror_frr.git/commitdiff
Amir's fix case where opaque capability is switched "ON -> OFF -> ON".
authorhasso <hasso>
Thu, 18 Mar 2004 19:18:33 +0000 (19:18 +0000)
committerhasso <hasso>
Thu, 18 Mar 2004 19:18:33 +0000 (19:18 +0000)
[quagga-dev 843]

ospfd/ChangeLog
ospfd/ospf_opaque.c

index 3ec877f5b6586b958521b1e0e6381e99c8f124a2..ca9dd04de5c3c37c673be4c4bc2c98417cb490c8 100644 (file)
@@ -1,3 +1,9 @@
+2004-03-18 Amir Guindehi <amir@datacore.ch>
+
+       * ospf_opaque.c: Attempt to correct the incorrect behavior of
+       Quagga's ospfd in the special situation that a node's opaque
+       capability has changed as "ON -> OFF -> ON". [quagga-dev 843].
+
 2004-02-19 Sowmini Varadhan <sowmini.varadhan@sun.com>
 
        * ospf_abr.c: (ospf_abr_update_aggregate) UNH 3.12b,c, address range
index f1fe783cce3cc556c1e8ee3b0644a576740aab95..636839c0104bb33a4e29c6d07f0fd088e542d843 100644 (file)
@@ -1385,10 +1385,15 @@ ospf_opaque_lsa_originate_schedule (struct ospf_interface *oi, int *delay0)
     {
       for (node = listhead (oi->opaque_lsa_self); node; nextnode (node))
         {
+         /* 
+          * removed the test for
+          *   (! list_isempty (oipt->id_list))   * Handler is already active. *
+           * because opaque cababilities ON -> OFF -> ON result in list_isempty (oipt->id_list)
+          * not being empty.
+          */
           if ((oipt = getdata (node))  == NULL /* Something wrong? */
           ||   oipt->t_opaque_lsa_self != NULL /* Waiting for a thread call. */
-          ||   oipt->status == PROC_SUSPEND    /* Cannot originate now. */
-          ||  ! list_isempty (oipt->id_list))  /* Handler is already active. */
+          ||   oipt->status == PROC_SUSPEND)   /* Cannot originate now. */
               continue;
 
           ospf_opaque_lsa_reoriginate_schedule ((void *) oi,
@@ -1401,10 +1406,15 @@ ospf_opaque_lsa_originate_schedule (struct ospf_interface *oi, int *delay0)
     {
       for (node = listhead (area->opaque_lsa_self); node; nextnode (node))
         {
+         /* 
+          * removed the test for
+          *   (! list_isempty (oipt->id_list))   * Handler is already active. *
+           * because opaque cababilities ON -> OFF -> ON result in list_isempty (oipt->id_list)
+          * not being empty.
+          */
           if ((oipt = getdata (node))  == NULL /* Something wrong? */
           ||   oipt->t_opaque_lsa_self != NULL /* Waiting for a thread call. */
-          ||   oipt->status == PROC_SUSPEND    /* Cannot originate now. */
-          ||  ! list_isempty (oipt->id_list))  /* Handler is already active. */
+          ||   oipt->status == PROC_SUSPEND)   /* Cannot originate now. */
             continue;
 
           ospf_opaque_lsa_reoriginate_schedule ((void *) area,
@@ -1417,10 +1427,15 @@ ospf_opaque_lsa_originate_schedule (struct ospf_interface *oi, int *delay0)
     {
       for (node = listhead (top->opaque_lsa_self); node; nextnode (node))
         {
+         /* 
+          * removed the test for
+          *   (! list_isempty (oipt->id_list))   * Handler is already active. *
+           * because opaque cababilities ON -> OFF -> ON result in list_isempty (oipt->id_list)
+          * not being empty.
+          */
           if ((oipt = getdata (node))  == NULL /* Something wrong? */
           ||   oipt->t_opaque_lsa_self != NULL /* Waiting for a thread call. */
-          ||   oipt->status == PROC_SUSPEND    /* Cannot originate now. */
-          ||  ! list_isempty (oipt->id_list))  /* Handler is already active. */
+          ||   oipt->status == PROC_SUSPEND)   /* Cannot originate now. */
             continue;
 
           ospf_opaque_lsa_reoriginate_schedule ((void *) top,