From f02ebf0810df901fa629e73416a8304dc1ae4c09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Thu, 6 Jun 2024 10:12:37 +0200
Subject: [PATCH] [Ivette] Adds a better error message when a request is
 rejected by Frama-C.

Also adds a warning from the Frama-C server.
---
 ivette/src/frama-c/server.ts | 5 ++++-
 src/plugins/server/main.ml   | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/ivette/src/frama-c/server.ts b/ivette/src/frama-c/server.ts
index b110462dc79..99674f1bf4f 100644
--- a/ivette/src/frama-c/server.ts
+++ b/ivette/src/frama-c/server.ts
@@ -880,7 +880,10 @@ client.onKilled((id: string) => {
 client.onRejected((id: string) => {
   const p = pending.get(id);
   if (p) {
-    p.reject('rejected');
+    const err =
+     'Request rejected by Frama-C: the related plugin may not be loaded, ' +
+     'or the Frama-C version is incompatible.';
+    p.reject(err);
     _resolved(id);
     logModel.registerRequest(
       { rid: id, statut: statutLog.REJECTED }
diff --git a/src/plugins/server/main.ml b/src/plugins/server/main.ml
index 26ee92e40da..7d8043afb66 100644
--- a/src/plugins/server/main.ml
+++ b/src/plugins/server/main.ml
@@ -279,6 +279,7 @@ let process_request (server : 'a server) (request : 'a request) : unit =
     begin
       match find request with
       | None ->
+        Senv.warning ~once:true "Unknown request %s" request ;
         Senv.debug "Rejected %a" server.pretty id ;
         Queue.push (`Rejected id) server.q_out
       | Some( kind , handler ) ->
-- 
GitLab