]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospf6d/ospf6_message.c
Merge pull request #8978 from kssoman/ospf_new
[mirror_frr.git] / ospf6d / ospf6_message.c
index f5b06ef2d7e15f486e1284add3550c98e7605cfd..1f2618ec83596b53f7b4e65e690ad4d07ba7b21a 100644 (file)
@@ -2370,7 +2370,19 @@ static void ospf6_send_lsupdate(struct ospf6_neighbor *on,
        }
        if (oi) {
                ospf6_packet_add(oi, op);
-               OSPF6_MESSAGE_WRITE_ON(oi);
+               /* If ospf instance is being deleted, send the packet
+                * immediately
+                */
+               if ((oi->area == NULL) || (oi->area->ospf6 == NULL))
+                       return;
+               if (oi->area->ospf6->inst_shutdown) {
+                       if (oi->on_write_q == 0) {
+                               listnode_add(oi->area->ospf6->oi_write_q, oi);
+                               oi->on_write_q = 1;
+                       }
+                       thread_execute(master, ospf6_write, oi->area->ospf6, 0);
+               } else
+                       OSPF6_MESSAGE_WRITE_ON(oi);
        }
 }