diff options
| author | John Estabrook <jestabro@vyos.io> | 2026-04-15 21:17:25 -0500 |
|---|---|---|
| committer | John Estabrook <jestabro@vyos.io> | 2026-05-11 09:03:23 -0500 |
| commit | 347f3743824ba49a8eff799f9da4385b90d07319 (patch) | |
| tree | fd8293ac37425aeebb2af0390a45fb30fe75e09f | |
| parent | c4fcf52f027d58987951299dc30b95affe52c3e0 (diff) | |
| download | vyos-1x-347f3743824ba49a8eff799f9da4385b90d07319.tar.gz vyos-1x-347f3743824ba49a8eff799f9da4385b90d07319.zip | |
T8488: add bindings for read/write_internal_string
| -rw-r--r-- | libvyosconfig/lib/bindings.ml | 17 |
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 |
