summaryrefslogtreecommitdiff
path: root/isisd/isis_adjacency.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_adjacency.c')
-rw-r--r--isisd/isis_adjacency.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/isisd/isis_adjacency.c b/isisd/isis_adjacency.c
index cba1b91fae..32d3466f5c 100644
--- a/isisd/isis_adjacency.c
+++ b/isisd/isis_adjacency.c
@@ -358,12 +358,15 @@ void isis_adj_state_change(struct isis_adjacency **padj,
* purposes */
adj->last_flap = time(NULL);
adj->flaps++;
- } else if (old_state == ISIS_ADJ_UP) {
- circuit->adj_state_changes++;
+ } else {
+ if (old_state == ISIS_ADJ_UP) {
+ circuit->adj_state_changes++;
- circuit->upadjcount[level - 1]--;
- if (circuit->upadjcount[level - 1] == 0)
- isis_tx_queue_clean(circuit->tx_queue);
+ circuit->upadjcount[level - 1]--;
+ if (circuit->upadjcount[level - 1] == 0)
+ isis_tx_queue_clean(
+ circuit->tx_queue);
+ }
if (new_state == ISIS_ADJ_DOWN) {
listnode_delete(
@@ -409,10 +412,13 @@ void isis_adj_state_change(struct isis_adjacency **padj,
master, send_l2_csnp, circuit,
0, &circuit->t_send_csnp[1]);
}
- } else if (old_state == ISIS_ADJ_UP) {
- circuit->upadjcount[level - 1]--;
- if (circuit->upadjcount[level - 1] == 0)
- isis_tx_queue_clean(circuit->tx_queue);
+ } else {
+ if (old_state == ISIS_ADJ_UP) {
+ circuit->upadjcount[level - 1]--;
+ if (circuit->upadjcount[level - 1] == 0)
+ isis_tx_queue_clean(
+ circuit->tx_queue);
+ }
if (new_state == ISIS_ADJ_DOWN) {
if (adj->circuit->u.p2p.neighbor == adj)