summaryrefslogtreecommitdiff
path: root/src/daemon/dlt_daemon_common.c
diff options
context:
space:
mode:
authorYusuke Sato <yusuke-sato@apn.alpine.co.jp>2018-05-18 14:35:31 +0900
committerChristoph Lipka <clipka@users.noreply.github.com>2018-05-18 07:35:31 +0200
commitf549f5527148b32a15489aae75c9e4557e19cbd4 (patch)
treef6586dd95fb402bfd396b006e876c2d18dc5d38b /src/daemon/dlt_daemon_common.c
parent89639e55c39687af398bdf9fbaf000338a5cb7db (diff)
downloadDLT-daemon-f549f5527148b32a15489aae75c9e4557e19cbd4.tar.gz
Introduce controlling entire system trace status feature from dlt-control (#57)
* dlt-control: Provision to control entire system trace status 1. support for setting trace status using wildcards for both app and context 2. support for setting entire system trace status *This Logic is as same as for changing log level. (SHA: a966393ad7003d02870bceffa08df5ddf4bbf864 dlt-control: Provision to control entire system log level) * dlt-daemon: Fix control entire log level / trace status issue In previous, dlt-control could send request to set all log level / trace status with DLT_LOG_DEFAULT / DLT_TRACE_STATUS_DEFAULT(-1). However, dlt-daemon could not accept these value. This change fix this issue so that setting log level/trace status of all registered contexts become possible. Signed-off-by: Yusuke Sato <yusuke-sato@apn.alpine.co.jp>
Diffstat (limited to 'src/daemon/dlt_daemon_common.c')
-rw-r--r--src/daemon/dlt_daemon_common.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c
index 0f56cc3..40d8d5c 100644
--- a/src/daemon/dlt_daemon_common.c
+++ b/src/daemon/dlt_daemon_common.c
@@ -1287,7 +1287,7 @@ void dlt_daemon_user_send_default_update(DltDaemon *daemon, int verbose)
}
}
-void dlt_daemon_user_send_all_update(DltDaemon *daemon, int8_t log_level, int verbose)
+void dlt_daemon_user_send_all_log_level_update(DltDaemon *daemon, int8_t log_level, int verbose)
{
int32_t count = 0;
DltDaemonContext *context = NULL;
@@ -1316,6 +1316,37 @@ void dlt_daemon_user_send_all_update(DltDaemon *daemon, int8_t log_level, int ve
}
}
+void dlt_daemon_user_send_all_trace_status_update(DltDaemon *daemon, int8_t trace_status, int verbose)
+{
+ int32_t count = 0;
+ DltDaemonContext *context = NULL;
+
+ PRINT_FUNCTION_VERBOSE(verbose);
+
+ if (daemon == NULL)
+ {
+ return;
+ }
+
+ dlt_vlog(LOG_NOTICE, "All trace status is updated -> %i\n", trace_status);
+
+ for (count = 0; count < daemon->num_contexts; count++)
+ {
+ context = &(daemon->contexts[count]);
+ if (context)
+ {
+ if (context->user_handle >= DLT_FD_MINIMUM)
+ {
+ context->trace_status = trace_status;
+ if (dlt_daemon_user_send_log_level(daemon, context, verbose) == -1)
+ {
+ dlt_vlog(LOG_WARNING, "Cannot send trace status %.4s:%.4s -> %i\n", context->apid, context->ctid, context->trace_status);
+ }
+ }
+ }
+ }
+}
+
void dlt_daemon_user_send_all_log_state(DltDaemon *daemon, int verbose)
{
int32_t count;