summaryrefslogtreecommitdiff
path: root/isisd/isis_misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'isisd/isis_misc.c')
-rw-r--r--isisd/isis_misc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/isisd/isis_misc.c b/isisd/isis_misc.c
index e4ef6c8dfa..833d514341 100644
--- a/isisd/isis_misc.c
+++ b/isisd/isis_misc.c
@@ -370,18 +370,20 @@ const char *print_sys_hostname(const uint8_t *sysid)
struct isis_dynhn *dyn;
struct isis *isis = NULL;
struct listnode *node;
+ struct isis_area *area = NULL;
if (!sysid)
return "nullsysid";
/* For our system ID return our host name */
- isis = isis_lookup_by_sysid(sysid);
- if (isis && !CHECK_FLAG(im->options, F_ISIS_UNIT_TEST))
+ area = isis_area_lookup_by_sysid(sysid);
+ if (area && area->dynhostname && !CHECK_FLAG(im->options, F_ISIS_UNIT_TEST))
return cmd_hostname_get();
for (ALL_LIST_ELEMENTS_RO(im->isis, node, isis)) {
+ area = isis_area_lookup_by_sysid(isis->sysid);
dyn = dynhn_find_by_id(isis, sysid);
- if (dyn)
+ if (area && area->dynhostname && dyn)
return dyn->hostname;
}