summaryrefslogtreecommitdiff
path: root/src/config_diff.ml
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2022-06-28 13:14:18 -0500
committerJohn Estabrook <jestabro@vyos.io>2022-06-28 14:08:21 -0500
commit4df07f8e286ebfacb70c87ee499a4d2c42b772e9 (patch)
tree79b2f5b134ecdedc8b1f8c0240f6f9fa7c417eb2 /src/config_diff.ml
parent46bb0a821b4db8f97e89367bec45a75287234994 (diff)
downloadvyos1x-config-4df07f8e286ebfacb70c87ee499a4d2c42b772e9.tar.gz
vyos1x-config-4df07f8e286ebfacb70c87ee499a4d2c42b772e9.zip
T4491: use empty string for name of config_tree root node
The practice of using "root" for the internal name of the root node collides with actual nodes named "root", due to a utility function that checks 'if root' by name. Use empty string as name of root node, as no actual node will match.
Diffstat (limited to 'src/config_diff.ml')
-rw-r--r--src/config_diff.ml12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/config_diff.ml b/src/config_diff.ml
index baa9682..8fba0ca 100644
--- a/src/config_diff.ml
+++ b/src/config_diff.ml
@@ -16,9 +16,9 @@ exception Empty_comparison
module ValueS = Set.Make(struct type t = string let compare = compare end)
let make_diff_trees l r = { left = l; right = r;
- add = ref (Config_tree.make "root");
- sub = ref (Config_tree.make "root");
- inter = ref (Config_tree.make "root");
+ add = ref (Config_tree.make "");
+ sub = ref (Config_tree.make "");
+ inter = ref (Config_tree.make "");
}
let name_of n = Vytree.name_of_node n
@@ -56,7 +56,7 @@ let get_opt_name left_opt right_opt =
let update_path path left_opt right_opt =
let name = get_opt_name left_opt right_opt in
- if name = "root" then path
+ if name = "" then path
else path @ [name]
(* tree diff algorithm: walk the tree pair, calling a function of type
@@ -198,7 +198,7 @@ let trim_trees (trees : diff_trees) ?(recurse=false) (path : string list) (m : c
let tree_at_path path node =
try
let node = Vytree.get node path in
- make Config_tree.default_data "root" [node]
+ make Config_tree.default_data "" [node]
with Vytree.Nonexistent_path -> raise Empty_comparison
(* call recursive diff on config_trees with decorate_trees as the diff_func *)
@@ -218,7 +218,7 @@ let diff_tree path left right =
let add_node = Config_tree.make "add" in
let sub_node = Config_tree.make "sub" in
let int_node = Config_tree.make "inter" in
- let ret = make Config_tree.default_data "root" [add_node; sub_node; int_node] in
+ let ret = make Config_tree.default_data "" [add_node; sub_node; int_node] in
let ret = graft_tree !(trees.add) ret ["add"] in
let ret = graft_tree !(trees.sub) ret ["sub"] in
let ret = graft_tree !(trees.inter) ret ["inter"] in