summaryrefslogtreecommitdiff
path: root/src/daemon/dlt_daemon_connection.c
diff options
context:
space:
mode:
authorChristoph Lipka <clipka@jp.adit-jv.com>2015-11-18 19:19:22 +0900
committerLutz Helwing <lutz_helwing@mentor.com>2015-11-24 09:48:41 +0100
commitda4ac57d87108d8b2690979c273c000a798a59f5 (patch)
tree45f79c0c90d3b4c9a6804d6794da5485a5f05ed3 /src/daemon/dlt_daemon_connection.c
parent188772ea0b3479352ae93552014d45fd1bc8e804 (diff)
downloadDLT-daemon-da4ac57d87108d8b2690979c273c000a798a59f5.tar.gz
Unix socket control interface
Control applications running in the same Linux OS should be able to communicate with the DLT Daemon via a socket connection. To be able to do that, the DLT Client library need to be extended. DLT Clients connected via this UNIX socket are not handled as normal DLT Clients and no log messages will be forwarded to them. This avoids problems in situations when a control application is connected to the DLT Daemon before any other 'real' DLT Client (e.g. DLT Viewer) is connected. In this situations, all already stored log messages are flushed to the control application and therefore lost, because the control application most likely ignore all incoming messages besides the one in which it is interested in. Signed-off-by: Christoph Lipka <clipka@jp.adit-jv.com>
Diffstat (limited to 'src/daemon/dlt_daemon_connection.c')
-rw-r--r--src/daemon/dlt_daemon_connection.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/daemon/dlt_daemon_connection.c b/src/daemon/dlt_daemon_connection.c
index 0eee668..1a7af3f 100644
--- a/src/daemon/dlt_daemon_connection.c
+++ b/src/daemon/dlt_daemon_connection.c
@@ -200,6 +200,12 @@ static DltReceiver *dlt_connection_get_receiver(DltDaemonLocal *daemon_local,
ret = &daemon_local->timer_wd;
break;
#endif
+ case DLT_CONNECTION_CONTROL_CONNECT:
+ /* FALL THROUGH */
+ /* There must be the same structure for this case */
+ case DLT_CONNECTION_CONTROL_MSG:
+ ret = &daemon_local->receiverCtrlSock;
+ break;
default:
ret = NULL;
}
@@ -253,6 +259,12 @@ void *dlt_connection_get_callback(DltConnection *con)
ret = dlt_daemon_process_systemd_timer;
break;
#endif
+ case DLT_CONNECTION_CONTROL_CONNECT:
+ ret = dlt_daemon_process_control_connect;
+ break;
+ case DLT_CONNECTION_CONTROL_MSG:
+ ret = dlt_daemon_process_control_messages;
+ break;
default:
ret = NULL;
}