mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 22:57:45 +00:00
lib: Add naive deduplication checks when installing commands
Since not all duplicate commands can be caught during graph construction, do a linear search over all commands before installing. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
parent
faf2a19de0
commit
c0f9771dcc
@ -329,6 +329,17 @@ install_element (enum node_type ntype, struct cmd_element *cmd)
|
||||
}
|
||||
|
||||
// add node to command graph and command vector
|
||||
// idiotic O(n) deduplication logic, should just use a merkle tree
|
||||
for (unsigned int i = 0; i < vector_active (cnode->cmd_vector); i++)
|
||||
{
|
||||
struct cmd_element *existing = vector_slot (cnode->cmd_vector, i);
|
||||
if (strmatch (existing->string, cmd->string))
|
||||
{
|
||||
zlog_warn ("Duplicate command: %s\n", cmd->string);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
command_parse_format (cnode->cmdgraph, cmd);
|
||||
vector_set (cnode->cmd_vector, cmd);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user