From 38f16688871c5edfa15048aadeede5f6b6050bef Mon Sep 17 00:00:00 2001 From: Alan Birchler De Allende <alan.birchler@telecom-paris.fr> Date: Fri, 26 Apr 2024 13:49:55 +0200 Subject: [PATCH] Updated the code to include RshClient for executing the capec tracer script. --- src/main/java/ai/CAPECTracer.java | 35 +++++++++++++------------------ 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/src/main/java/ai/CAPECTracer.java b/src/main/java/ai/CAPECTracer.java index 95753adf87..d18ecd833b 100644 --- a/src/main/java/ai/CAPECTracer.java +++ b/src/main/java/ai/CAPECTracer.java @@ -1,5 +1,8 @@ package ai; +import launcher.LauncherException; +import launcher.RshClient; +import launcher.RshClientReader; import myutil.TraceManager; import java.io.*; @@ -57,30 +60,22 @@ public class CAPECTracer extends AIInteract { String traces = ""; try { - String s = null; - - // Execute the process - Process p = Runtime.getRuntime().exec("python3 " + capecTracerFolder + "/capec_tracer.py"); - - BufferedReader stdInput = new BufferedReader(new - InputStreamReader(p.getInputStream())); - BufferedReader stdError = new BufferedReader(new - InputStreamReader(p.getErrorStream())); - - // read the output from the command - while ((s = stdInput.readLine()) != null) { - TraceManager.addDev(s); - } - - // read any errors from the attempted command - while ((s = stdError.readLine()) != null) { - TraceManager.addDev(s); + RshClient rshc = new RshClient("localhost"); + rshc.setCmd("python3 " + capecTracerFolder + "/capec_tracer.py"); + rshc.sendExecuteCommandRequest(); + RshClientReader data = rshc.getDataReaderFromProcess(); + int characterInt = data.read(); + StringBuilder output = new StringBuilder(); + + while (characterInt != -1) { + output.append((char) characterInt); + characterInt = data.read(); } + TraceManager.addDev(output.toString()); byte[] bytes = Files.readAllBytes(Path.of(capecTracerFolder + "/traced_capecs.txt")); - traces = new String(bytes); - } catch (IOException e) { + } catch (IOException | LauncherException e) { TraceManager.addDev(e.getMessage()); } -- GitLab