]> git.puffer.fish Git - matthieu/frr.git/commitdiff
isisd: simplify adj_change hook call
authorEmanuele Di Pascale <emanuele@voltanet.io>
Wed, 23 Sep 2020 14:37:21 +0000 (16:37 +0200)
committerIgor Ryzhov <iryzhov@nfware.com>
Wed, 7 Oct 2020 08:01:16 +0000 (11:01 +0300)
There is no need to call isis_adj_state_change_hook once per level
in isis_adj_state_change, we can just do it once at the end.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd/isis_adjacency.c

index f7cdd58f72b76989bf3e1f8eae8ac0f941403654..f0cf93ac4b04161e29813465894e794da7983c9b 100644 (file)
@@ -304,7 +304,6 @@ void isis_adj_state_change(struct isis_adjacency **padj,
                                continue;
                        if (new_state == ISIS_ADJ_UP) {
                                circuit->upadjcount[level - 1]++;
-                               hook_call(isis_adj_state_change_hook, adj);
                                /* update counter & timers for debugging
                                 * purposes */
                                adj->last_flap = time(NULL);
@@ -317,7 +316,6 @@ void isis_adj_state_change(struct isis_adjacency **padj,
                                if (circuit->upadjcount[level - 1] == 0)
                                        isis_tx_queue_clean(circuit->tx_queue);
 
-                               hook_call(isis_adj_state_change_hook, adj);
                                if (new_state == ISIS_ADJ_DOWN)
                                        del = true;
                        }
@@ -342,7 +340,6 @@ void isis_adj_state_change(struct isis_adjacency **padj,
                                continue;
                        if (new_state == ISIS_ADJ_UP) {
                                circuit->upadjcount[level - 1]++;
-                               hook_call(isis_adj_state_change_hook, adj);
 
                                /* update counter & timers for debugging
                                 * purposes */
@@ -365,13 +362,14 @@ void isis_adj_state_change(struct isis_adjacency **padj,
                                if (circuit->upadjcount[level - 1] == 0)
                                        isis_tx_queue_clean(circuit->tx_queue);
 
-                               hook_call(isis_adj_state_change_hook, adj);
                                if (new_state == ISIS_ADJ_DOWN)
                                        del = true;
                        }
                }
        }
 
+       hook_call(isis_adj_state_change_hook, adj);
+
        if (del) {
                isis_delete_adj(adj);
                *padj = NULL;