]> git.proxmox.com Git - mirror_frr.git/blobdiff - bfdd/event.c
ospf6d: Convert to using %pFX
[mirror_frr.git] / bfdd / event.c
index ba12f5b4e80066dc8086cb1ee019518824d3cb2d..654928b9b3759a7bd745dbe3aa7cd25935023328 100644 (file)
@@ -39,18 +39,15 @@ void bfd_recvtimer_update(struct bfd_session *bs)
 {
        struct timeval tv = {.tv_sec = 0, .tv_usec = bs->detect_TO};
 
+       /* Remove previous schedule if any. */
+       bfd_recvtimer_delete(bs);
+
        /* Don't add event if peer is deactivated. */
-       if (BFD_CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN))
+       if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN) ||
+           bs->sock == -1)
                return;
 
        tv_normalize(&tv);
-#ifdef BFD_EVENT_DEBUG
-       log_debug("%s: sec = %ld, usec = %ld", __func__, tv.tv_sec, tv.tv_usec);
-#endif /* BFD_EVENT_DEBUG */
-
-       /* Remove previous schedule if any. */
-       if (bs->recvtimer_ev)
-               bfd_recvtimer_delete(bs);
 
        thread_add_timer_tv(master, bfd_recvtimer_cb, bs, &tv,
                            &bs->recvtimer_ev);
@@ -60,18 +57,15 @@ void bfd_echo_recvtimer_update(struct bfd_session *bs)
 {
        struct timeval tv = {.tv_sec = 0, .tv_usec = bs->echo_detect_TO};
 
+       /* Remove previous schedule if any. */
+       bfd_echo_recvtimer_delete(bs);
+
        /* Don't add event if peer is deactivated. */
-       if (BFD_CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN))
+       if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN) ||
+           bs->sock == -1)
                return;
 
        tv_normalize(&tv);
-#ifdef BFD_EVENT_DEBUG
-       log_debug("%s: sec = %ld, usec = %ld", __func__, tv.tv_sec, tv.tv_usec);
-#endif /* BFD_EVENT_DEBUG */
-
-       /* Remove previous schedule if any. */
-       if (bs->echo_recvtimer_ev)
-               bfd_echo_recvtimer_delete(bs);
 
        thread_add_timer_tv(master, bfd_echo_recvtimer_cb, bs, &tv,
                            &bs->echo_recvtimer_ev);
@@ -81,18 +75,15 @@ void bfd_xmttimer_update(struct bfd_session *bs, uint64_t jitter)
 {
        struct timeval tv = {.tv_sec = 0, .tv_usec = jitter};
 
+       /* Remove previous schedule if any. */
+       bfd_xmttimer_delete(bs);
+
        /* Don't add event if peer is deactivated. */
-       if (BFD_CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN))
+       if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN) ||
+           bs->sock == -1)
                return;
 
        tv_normalize(&tv);
-#ifdef BFD_EVENT_DEBUG
-       log_debug("%s: sec = %ld, usec = %ld", __func__, tv.tv_sec, tv.tv_usec);
-#endif /* BFD_EVENT_DEBUG */
-
-       /* Remove previous schedule if any. */
-       if (bs->xmttimer_ev)
-               bfd_xmttimer_delete(bs);
 
        thread_add_timer_tv(master, bfd_xmt_cb, bs, &tv, &bs->xmttimer_ev);
 }
@@ -101,18 +92,15 @@ void bfd_echo_xmttimer_update(struct bfd_session *bs, uint64_t jitter)
 {
        struct timeval tv = {.tv_sec = 0, .tv_usec = jitter};
 
+       /* Remove previous schedule if any. */
+       bfd_echo_xmttimer_delete(bs);
+
        /* Don't add event if peer is deactivated. */
-       if (BFD_CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN))
+       if (CHECK_FLAG(bs->flags, BFD_SESS_FLAG_SHUTDOWN) ||
+           bs->sock == -1)
                return;
 
        tv_normalize(&tv);
-#ifdef BFD_EVENT_DEBUG
-       log_debug("%s: sec = %ld, usec = %ld", __func__, tv.tv_sec, tv.tv_usec);
-#endif /* BFD_EVENT_DEBUG */
-
-       /* Remove previous schedule if any. */
-       if (bs->echo_xmttimer_ev)
-               bfd_echo_xmttimer_delete(bs);
 
        thread_add_timer_tv(master, bfd_echo_xmt_cb, bs, &tv,
                            &bs->echo_xmttimer_ev);
@@ -120,36 +108,20 @@ void bfd_echo_xmttimer_update(struct bfd_session *bs, uint64_t jitter)
 
 void bfd_recvtimer_delete(struct bfd_session *bs)
 {
-       if (bs->recvtimer_ev == NULL)
-               return;
-
-       thread_cancel(bs->recvtimer_ev);
-       bs->recvtimer_ev = NULL;
+       THREAD_OFF(bs->recvtimer_ev);
 }
 
 void bfd_echo_recvtimer_delete(struct bfd_session *bs)
 {
-       if (bs->echo_recvtimer_ev == NULL)
-               return;
-
-       thread_cancel(bs->echo_recvtimer_ev);
-       bs->echo_recvtimer_ev = NULL;
+       THREAD_OFF(bs->echo_recvtimer_ev);
 }
 
 void bfd_xmttimer_delete(struct bfd_session *bs)
 {
-       if (bs->xmttimer_ev == NULL)
-               return;
-
-       thread_cancel(bs->xmttimer_ev);
-       bs->xmttimer_ev = NULL;
+       THREAD_OFF(bs->xmttimer_ev);
 }
 
 void bfd_echo_xmttimer_delete(struct bfd_session *bs)
 {
-       if (bs->echo_xmttimer_ev == NULL)
-               return;
-
-       thread_cancel(bs->echo_xmttimer_ev);
-       bs->echo_xmttimer_ev = NULL;
+       THREAD_OFF(bs->echo_xmttimer_ev);
 }