diff options
author | Yusuke Sato <yusuke-sato@apn.alpine.co.jp> | 2018-05-18 14:35:31 +0900 |
---|---|---|
committer | Christoph Lipka <clipka@users.noreply.github.com> | 2018-05-18 07:35:31 +0200 |
commit | f549f5527148b32a15489aae75c9e4557e19cbd4 (patch) | |
tree | f6586dd95fb402bfd396b006e876c2d18dc5d38b /src/daemon/dlt_daemon_common.c | |
parent | 89639e55c39687af398bdf9fbaf000338a5cb7db (diff) | |
download | DLT-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.c | 33 |
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; |