summaryrefslogtreecommitdiff
path: root/src/vyconfd.ml
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2025-04-06 18:26:13 -0500
committerJohn Estabrook <jestabro@vyos.io>2025-04-11 13:32:31 -0500
commit9e8feea52140222c689af1439eb7be63a9e121da (patch)
treeaf6359113c97c8479d6a3b7b9d8f4fec58747fa5 /src/vyconfd.ml
parentad2d932768734b492a54c728b459437056460668 (diff)
downloadvyconf-9e8feea52140222c689af1439eb7be63a9e121da.tar.gz
vyconf-9e8feea52140222c689af1439eb7be63a9e121da.zip
T7321: add discard operation
Diffstat (limited to 'src/vyconfd.ml')
-rw-r--r--src/vyconfd.ml9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/vyconfd.ml b/src/vyconfd.ml
index e531278..e37a6ae 100644
--- a/src/vyconfd.ml
+++ b/src/vyconfd.ml
@@ -163,6 +163,14 @@ let delete world token (req: request_delete) =
response_tmpl
with Session.Session_error msg -> {response_tmpl with status=Fail; error=(Some msg)}
+let discard world token (_req: request_discard) =
+ try
+ let session = Session.discard world (find_session token)
+ in
+ Hashtbl.replace sessions token session;
+ response_tmpl
+ with Session.Session_error msg -> {response_tmpl with status=Fail; error=(Some msg)}
+
let load world token (req: request_load) =
try
let session = Session.load world (find_session token) req.location
@@ -266,6 +274,7 @@ let rec handle_connection world ic oc () =
| Some t, Validate r -> validate world t r
| Some t, Set r -> set world t r
| Some t, Delete r -> delete world t r
+ | Some t, Discard r -> discard world t r
| Some t, Load r -> load world t r
| Some t, Save r -> save world t r
| _ -> failwith "Unimplemented"