diff --git a/net/server/cli_server/dap_cli_server.c b/net/server/cli_server/dap_cli_server.c index 5c67c2ba34235d4d91817dda37c8c533cdbbe11d..ea2f5dfbc4a0ac1fd663710609ec2594d6ba9ba4 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 187f2e6d648dfb4a84fd05178ae4754349ccbe94..5ea264c4420650643a97b0a4428b484e8b086d54 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*);