From 8bf745b39864481042e243e0347f16e802c81ecb Mon Sep 17 00:00:00 2001
From: "pavel.uhanov" <pavel.uhanov@demlabs.net>
Date: Thu, 20 Mar 2025 12:37:28 +0300
Subject: [PATCH] [*] change callback call

---
 net/server/cli_server/dap_cli_server.c         | 11 +++++++----
 net/server/cli_server/include/dap_cli_server.h |  2 +-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/net/server/cli_server/dap_cli_server.c b/net/server/cli_server/dap_cli_server.c
index 5c67c2ba3..ea2f5dfbc 100644
--- a/net/server/cli_server/dap_cli_server.c
+++ b/net/server/cli_server/dap_cli_server.c
@@ -510,8 +510,10 @@ char *dap_cli_cmd_exec(char *a_req_str) {
         }
         // Call the command function
         if(l_cmd &&  l_argv && l_cmd->func) {
-            if (s_stat_callback)
-                s_stat_callback(l_cmd->id, true);
+            dap_time_t l_call_time = 0;
+            if (s_stat_callback) {
+                l_call_time = dap_nanotime_now();
+            }
             if (json_commands(cmd_name)) {
                 res = l_cmd->func(l_argc, l_argv, (void *)&l_json_arr_reply);
             } else if (l_cmd->arg_func) {
@@ -519,8 +521,9 @@ char *dap_cli_cmd_exec(char *a_req_str) {
             } else {
                 res = l_cmd->func(l_argc, l_argv, (void *)&str_reply);
             }
-            if (s_stat_callback)
-                s_stat_callback(l_cmd->id, false);
+            if (s_stat_callback) {
+                s_stat_callback(l_cmd->id, (dap_nanotime_now() - l_call_time) / 1000000);
+            }
         } else if (l_cmd) {
             log_it(L_WARNING,"NULL arguments for input for command \"%s\"", str_cmd);
             dap_json_rpc_error_add(l_json_arr_reply, -1, "NULL arguments for input for command \"%s\"", str_cmd);
diff --git a/net/server/cli_server/include/dap_cli_server.h b/net/server/cli_server/include/dap_cli_server.h
index 187f2e6d6..5ea264c44 100644
--- a/net/server/cli_server/include/dap_cli_server.h
+++ b/net/server/cli_server/include/dap_cli_server.h
@@ -32,7 +32,7 @@
 
 typedef int (*dap_cli_server_cmd_callback_ex_t)(int argc, char ** argv, void *arg_func, void **a_str_reply);
 typedef int (*dap_cli_server_cmd_callback_t)(int argc, char ** argv, void **a_str_reply);
-typedef void (*dap_cli_server_cmd_stat_callback_t)(int16_t a_cmd_num, bool a_flag);  // use to statistic collect
+typedef void (*dap_cli_server_cmd_stat_callback_t)(int16_t a_cmd_num, int64_t a_call_time);  // use to statistic collect
 
 typedef void (*dap_cli_server_override_log_cmd_callback_t)(const char*);
 
-- 
GitLab