diff options
author | Bui Nguyen Quoc Thanh <thanh.buinguyenquoc@vn.bosch.com> | 2019-03-13 15:41:44 +0700 |
---|---|---|
committer | Saya Sugiura <ssugiura@jp.adit-jv.com> | 2019-06-18 17:22:09 +0900 |
commit | 341831da4da448392d62e48f1a4f419a18e3dca5 (patch) | |
tree | 2a16432a684e3cc2dc0dba1113ca6ea54cbc98ed /src/daemon | |
parent | cc9e192a990e2f573fbe680cf97368d73ab24f69 (diff) | |
download | DLT-daemon-341831da4da448392d62e48f1a4f419a18e3dca5.tar.gz |
daemon: Don't remove unregistered context
If a context is defined and loaded from runtime context config file,
that context won't be deleted/removed from dlt-daemon database
until its parent application is unregistered.
Signed-off-by: Bui Nguyen Quoc Thanh <thanh.buinguyenquoc@vn.bosch.com>
Diffstat (limited to 'src/daemon')
-rw-r--r-- | src/daemon/dlt-daemon.c | 6 | ||||
-rw-r--r-- | src/daemon/dlt_daemon_common.c | 8 | ||||
-rw-r--r-- | src/daemon/dlt_daemon_common.h | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index b587ead..b4c82b0 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -2597,7 +2597,11 @@ int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon, daemon->ecuid, verbose); - if (context) { + /* In case the daemon is loaded with predefined contexts and its context + * unregisters, the context information will not be deleted from daemon's + * table until its parent application is unregistered. + */ + if (context && context->predefined == false) { /* Delete this connection entry from internal table*/ if (dlt_daemon_context_del(daemon, context, daemon->ecuid, verbose) == -1) { dlt_vlog(LOG_WARNING, diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c index 8508dfe..38b94fe 100644 --- a/src/daemon/dlt_daemon_common.c +++ b/src/daemon/dlt_daemon_common.c @@ -912,6 +912,14 @@ DltDaemonContext *dlt_daemon_context_add(DltDaemon *daemon, context->log_level_pos = log_level_pos; context->user_handle = user_handle; + /* In case a context is loaded from runtime config file, + * the user_handle is 0 and we mark that context as predefined. + */ + if (context->user_handle == 0) + context->predefined = true; + else + context->predefined = false; + /* Sort */ if (new_context) { qsort(user_list->contexts, diff --git a/src/daemon/dlt_daemon_common.h b/src/daemon/dlt_daemon_common.h index be29bca..507098a 100644 --- a/src/daemon/dlt_daemon_common.h +++ b/src/daemon/dlt_daemon_common.h @@ -79,6 +79,7 @@ # include <limits.h> # include <semaphore.h> +# include <stdbool.h> # include "dlt_common.h" # include "dlt_user.h" # include "dlt_offline_logstorage.h" @@ -142,6 +143,7 @@ typedef struct int user_handle; /**< connection handle for connection to user application */ char *context_description; /**< context description */ int8_t storage_log_level; /**< log level set for offline logstorage */ + bool predefined; /**< set to true if this context is predefined by runtime configuration file */ } DltDaemonContext; /* |