summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2026-04-15 21:17:25 -0500
committerJohn Estabrook <jestabro@vyos.io>2026-05-11 09:03:23 -0500
commit347f3743824ba49a8eff799f9da4385b90d07319 (patch)
treefd8293ac37425aeebb2af0390a45fb30fe75e09f
parentc4fcf52f027d58987951299dc30b95affe52c3e0 (diff)
downloadvyos-1x-347f3743824ba49a8eff799f9da4385b90d07319.tar.gz
vyos-1x-347f3743824ba49a8eff799f9da4385b90d07319.zip
T8488: add bindings for read/write_internal_string
-rw-r--r--libvyosconfig/lib/bindings.ml17
1 files changed, 17 insertions, 0 deletions
diff --git a/libvyosconfig/lib/bindings.ml b/libvyosconfig/lib/bindings.ml
index 78e30693d..0759edae2 100644
--- a/libvyosconfig/lib/bindings.ml
+++ b/libvyosconfig/lib/bindings.ml
@@ -95,6 +95,21 @@ let write_internal c_ptr file =
with Internal.Write_error msg ->
error_message := msg
+let read_internal_string s =
+ (* alert exn Internal.read_string:
+ [Internal.Read_error] caught
+ *)
+ try
+ error_message := "";
+ let ct = (I.read_string[@alert "-exn"]) s in
+ Ctypes.Root.create ct
+ with Internal.Read_error msg ->
+ error_message := msg; Ctypes.null
+
+let write_internal_string c_ptr =
+ let ct = Root.get c_ptr in
+ I.write_string ct
+
let render_json_reference_tree c_ptr =
RT.render_json (Root.get c_ptr)
@@ -525,6 +540,8 @@ struct
let () = I.internal "to_commands" ((ptr void) @-> string @-> returning string) render_commands
let () = I.internal "read_internal" (string @-> returning (ptr void)) read_internal
let () = I.internal "write_internal" ((ptr void) @-> string @-> returning void) write_internal
+ let () = I.internal "read_internal_string" (string @-> returning (ptr void)) read_internal_string
+ let () = I.internal "write_internal_string" ((ptr void) @-> returning string) write_internal_string
let () = I.internal "to_json_reference_tree" ((ptr void) @-> returning string) render_json_reference_tree
let () = I.internal "read_internal_reference_tree" (string @-> returning (ptr void)) read_internal_reference_tree
let () = I.internal "write_internal_reference_tree" ((ptr void) @-> string @-> returning void) write_internal_reference_tree