summaryrefslogtreecommitdiff
path: root/libvyosconfig/lib
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2026-04-12 16:23:29 -0500
committerJohn Estabrook <jestabro@vyos.io>2026-05-11 09:03:23 -0500
commit50e09bdf1ab2344c119d2e6c50375f44faaf4a6c (patch)
tree5c7eba357e4a8077ac23378382bf6a8e78ad21f7 /libvyosconfig/lib
parent7a49b5bde4cc220977bd5719a1ecd2ffabe03ca9 (diff)
downloadvyos-1x-50e09bdf1ab2344c119d2e6c50375f44faaf4a6c.tar.gz
vyos-1x-50e09bdf1ab2344c119d2e6c50375f44faaf4a6c.zip
T8488: add binding for subtree_from_partial
Diffstat (limited to 'libvyosconfig/lib')
-rw-r--r--libvyosconfig/lib/bindings.ml13
1 files changed, 13 insertions, 0 deletions
diff --git a/libvyosconfig/lib/bindings.ml b/libvyosconfig/lib/bindings.ml
index ed354f4b9..78e30693d 100644
--- a/libvyosconfig/lib/bindings.ml
+++ b/libvyosconfig/lib/bindings.ml
@@ -476,6 +476,18 @@ let mask_tree c_ptr_l c_ptr_r exclusive =
| CD.Incommensurable -> error_message := "Incommensurable"; Ctypes.null
| CD.Empty_comparison -> error_message := "Empty comparison"; Ctypes.null
+let subtree_from_partial r_ptr c_ptr i_ptr path =
+ let rt = Root.get r_ptr in
+ let ct = Root.get c_ptr in
+ let input = Root.get i_ptr in
+ let path = split_on_whitespace path in
+ try
+ let ct_ret = (CD.subtree_from_partial[@alert "-exn"]) rt ct input path in
+ Ctypes.Root.create ct_ret
+ with
+ CD.Malformed_path s ->
+ error_message := s; Ctypes.null
+
let validate_tree_filter c_ptr rt_cache_path validator_dir =
(* alert exn Internal.read_internal:
[Internal.Read_error] caught
@@ -540,6 +552,7 @@ struct
let () = I.internal "tree_merge" (bool @-> (ptr void) @-> (ptr void) @-> returning (ptr void)) tree_merge
let () = I.internal "reference_tree_to_json" (string @-> string @-> string @-> returning int) reference_tree_to_json
let () = I.internal "mask_tree" ((ptr void) @-> (ptr void) @-> bool @-> returning (ptr void)) mask_tree
+ let () = I.internal "subtree_from_partial" ((ptr void) @-> (ptr void) @-> (ptr void) @-> string @-> returning (ptr void)) subtree_from_partial
let () = I.internal "validate_tree_filter" ((ptr void) @-> string @-> string @-> returning (ptr void)) validate_tree_filter
let () = I.internal "config_dict" ((ptr void) @-> (ptr void) @-> (ptr void) @-> string @-> bool @-> bool @-> returning string) config_dict
end