]> git.proxmox.com Git - mirror_frr.git/blobdiff - isisd/isis_dynhn.c
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / isisd / isis_dynhn.c
index 9249ad6290677ebf4b8543d488ed0f0e62301f2a..1d29d1086d8f55113bc7383d8d2fbd965953e60e 100644 (file)
@@ -76,7 +76,7 @@ static int dyn_cache_cleanup(struct thread *thread)
        return ISIS_OK;
 }
 
-struct isis_dynhn *dynhn_find_by_id(const u_char *id)
+struct isis_dynhn *dynhn_find_by_id(const uint8_t *id)
 {
        struct listnode *node = NULL;
        struct isis_dynhn *dyn = NULL;
@@ -94,41 +94,29 @@ struct isis_dynhn *dynhn_find_by_name(const char *hostname)
        struct isis_dynhn *dyn = NULL;
 
        for (ALL_LIST_ELEMENTS_RO(dyn_cache, node, dyn))
-               if (strncmp((char *)dyn->name.name, hostname, 255) == 0)
+               if (strncmp(dyn->hostname, hostname, 255) == 0)
                        return dyn;
 
        return NULL;
 }
 
-void isis_dynhn_insert(const u_char *id, struct hostname *hostname, int level)
+void isis_dynhn_insert(const uint8_t *id, const char *hostname, int level)
 {
        struct isis_dynhn *dyn;
 
        dyn = dynhn_find_by_id(id);
-       if (dyn) {
-               memcpy(&dyn->name, hostname, hostname->namelen + 1);
-               memcpy(dyn->id, id, ISIS_SYS_ID_LEN);
-               dyn->refresh = time(NULL);
-               return;
-       }
-       dyn = XCALLOC(MTYPE_ISIS_DYNHN, sizeof(struct isis_dynhn));
        if (!dyn) {
-               zlog_warn("isis_dynhn_insert(): out of memory!");
-               return;
+               dyn = XCALLOC(MTYPE_ISIS_DYNHN, sizeof(struct isis_dynhn));
+               memcpy(dyn->id, id, ISIS_SYS_ID_LEN);
+               dyn->level = level;
+               listnode_add(dyn_cache, dyn);
        }
 
-       /* we also copy the length */
-       memcpy(&dyn->name, hostname, hostname->namelen + 1);
-       memcpy(dyn->id, id, ISIS_SYS_ID_LEN);
+       snprintf(dyn->hostname, sizeof(dyn->hostname), "%s", hostname);
        dyn->refresh = time(NULL);
-       dyn->level = level;
-
-       listnode_add(dyn_cache, dyn);
-
-       return;
 }
 
-void isis_dynhn_remove(const u_char *id)
+void isis_dynhn_remove(const uint8_t *id)
 {
        struct isis_dynhn *dyn;
 
@@ -137,7 +125,6 @@ void isis_dynhn_remove(const u_char *id)
                return;
        listnode_delete(dyn_cache, dyn);
        XFREE(MTYPE_ISIS_DYNHN, dyn);
-       return;
 }
 
 /*
@@ -155,10 +142,10 @@ void dynhn_print_all(struct vty *vty)
        for (ALL_LIST_ELEMENTS_RO(dyn_cache, node, dyn)) {
                vty_out(vty, "%-7d", dyn->level);
                vty_out(vty, "%-15s%-15s\n", sysid_print(dyn->id),
-                       dyn->name.name);
+                       dyn->hostname);
        }
 
        vty_out(vty, "     * %s %s\n", sysid_print(isis->sysid),
-               unix_hostname());
+               cmd_hostname_get());
        return;
 }