diff options
| -rw-r--r-- | ospf6d/ospf6_interface.c | 3 | ||||
| -rw-r--r-- | ospf6d/ospf6_message.c | 6 | ||||
| -rw-r--r-- | ospf6d/ospf6_neighbor.c | 5 | ||||
| -rw-r--r-- | ospf6d/ospf6_neighbor.h | 2 |
4 files changed, 13 insertions, 3 deletions
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 64992bbcee..4205be38ba 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -675,7 +675,8 @@ uint8_t dr_election(struct ospf6_interface *oi) if (on->state < OSPF6_NEIGHBOR_TWOWAY) continue; /* Schedule AdjOK. */ - thread_add_event(master, adj_ok, on, 0, NULL); + thread_add_event(master, adj_ok, on, 0, + &on->thread_adj_ok); } } diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c index a81c3e728f..49a379aa17 100644 --- a/ospf6d/ospf6_message.c +++ b/ospf6d/ospf6_message.c @@ -772,7 +772,8 @@ static void ospf6_dbdesc_recv_master(struct ospf6_header *oh, /* More bit check */ if (!CHECK_FLAG(dbdesc->bits, OSPF6_DBDESC_MBIT) && !CHECK_FLAG(on->dbdesc_bits, OSPF6_DBDESC_MBIT)) - thread_add_event(master, exchange_done, on, 0, NULL); + thread_add_event(master, exchange_done, on, 0, + &on->thread_exchange_done); else { thread_add_event(master, ospf6_dbdesc_send_newone, on, 0, &on->thread_send_dbdesc); @@ -2261,7 +2262,8 @@ int ospf6_dbdesc_send_newone(struct thread *thread) if (!CHECK_FLAG(on->dbdesc_bits, OSPF6_DBDESC_MSBIT) && /* Slave */ !CHECK_FLAG(on->dbdesc_last.bits, OSPF6_DBDESC_MBIT) && !CHECK_FLAG(on->dbdesc_bits, OSPF6_DBDESC_MBIT)) - thread_add_event(master, exchange_done, on, 0, NULL); + thread_add_event(master, exchange_done, on, 0, + &on->thread_exchange_done); thread_execute(master, ospf6_dbdesc_send, on, 0); return 0; diff --git a/ospf6d/ospf6_neighbor.c b/ospf6d/ospf6_neighbor.c index 36948dc0a7..3d0dde8c65 100644 --- a/ospf6d/ospf6_neighbor.c +++ b/ospf6d/ospf6_neighbor.c @@ -168,6 +168,9 @@ void ospf6_neighbor_delete(struct ospf6_neighbor *on) THREAD_OFF(on->thread_send_lsreq); THREAD_OFF(on->thread_send_lsupdate); THREAD_OFF(on->thread_send_lsack); + THREAD_OFF(on->thread_exchange_done); + THREAD_OFF(on->thread_adj_ok); + THREAD_OFF(on->gr_helper_info.t_grace_timer); bfd_sess_free(&on->bfd_session); @@ -603,6 +606,8 @@ int oneway_received(struct thread *thread) THREAD_OFF(on->thread_send_lsreq); THREAD_OFF(on->thread_send_lsupdate); THREAD_OFF(on->thread_send_lsack); + THREAD_OFF(on->thread_exchange_done); + THREAD_OFF(on->thread_adj_ok); return 0; } diff --git a/ospf6d/ospf6_neighbor.h b/ospf6d/ospf6_neighbor.h index f7735b87b9..de59a1ccf5 100644 --- a/ospf6d/ospf6_neighbor.h +++ b/ospf6d/ospf6_neighbor.h @@ -136,6 +136,8 @@ struct ospf6_neighbor { struct thread *thread_send_lsreq; struct thread *thread_send_lsupdate; struct thread *thread_send_lsack; + struct thread *thread_exchange_done; + struct thread *thread_adj_ok; /* BFD information */ struct bfd_session_params *bfd_session; |
