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.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/isisd/isis_adjacency.c b/isisd/isis_adjacency.c
index 430bee92bf..3ed6fe95f5 100644
--- a/isisd/isis_adjacency.c
+++ b/isisd/isis_adjacency.c
@@ -293,7 +293,7 @@ const char *isis_adj_name(const struct isis_adjacency *adj)
struct isis_dynhn *dyn;
dyn = dynhn_find_by_id(adj->circuit->isis, adj->sysid);
- if (dyn)
+ if (adj->circuit->area->dynhostname && dyn)
return dyn->hostname;
snprintfrr(buf, sizeof(buf), "%pSY", adj->sysid);
@@ -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)