summaryrefslogtreecommitdiff
path: root/src/daemon/dlt-daemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon/dlt-daemon.c')
-rw-r--r--src/daemon/dlt-daemon.c2217
1 files changed, 1000 insertions, 1217 deletions
diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
index e3475d4..b7766f0 100644
--- a/src/daemon/dlt-daemon.c
+++ b/src/daemon/dlt-daemon.c
@@ -43,12 +43,12 @@
#include <pthread.h>
#ifdef linux
-#include <sys/timerfd.h>
+# include <sys/timerfd.h>
#endif
#include <sys/stat.h>
#include <sys/time.h>
#if defined(linux) && defined(__NR_statx)
-#include <linux/stat.h>
+# include <linux/stat.h>
#endif
#include "dlt_types.h"
@@ -67,14 +67,14 @@
#include "dlt_gateway.h"
#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) || defined(DLT_SYSTEMD_ENABLE)
-#include "sd-daemon.h"
+# include "sd-daemon.h"
#endif
/**
- \defgroup daemon DLT Daemon
- \addtogroup daemon
- \{
-*/
+ * \defgroup daemon DLT Daemon
+ * \addtogroup daemon
+ \{
+ */
/** Global text output buffer, mainly used for creation of error/warning strings */
static char str[DLT_DAEMON_TEXTBUFSIZE];
@@ -82,7 +82,7 @@ static char str[DLT_DAEMON_TEXTBUFSIZE];
static int dlt_daemon_log_internal(DltDaemon *daemon, DltDaemonLocal *daemon_local, char *str, int verbose);
#ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
-static uint32_t watchdog_trigger_interval; // watchdog trigger interval in [s]
+static uint32_t watchdog_trigger_interval; /* watchdog trigger interval in [s] */
#endif
/* used in main event loop and signal handler */
@@ -96,10 +96,10 @@ int g_signo = 0;
void usage()
{
char version[DLT_DAEMON_TEXTBUFSIZE];
- dlt_get_version(version,DLT_DAEMON_TEXTBUFSIZE);
+ dlt_get_version(version, DLT_DAEMON_TEXTBUFSIZE);
- //printf("DLT logging daemon %s %s\n", _DLT_PACKAGE_VERSION, _DLT_PACKAGE_VERSION_STATE);
- //printf("Compile options: %s %s %s %s",_DLT_SYSTEMD_ENABLE, _DLT_SYSTEMD_WATCHDOG_ENABLE, _DLT_TEST_ENABLE, _DLT_SHM_ENABLE);
+ /*printf("DLT logging daemon %s %s\n", _DLT_PACKAGE_VERSION, _DLT_PACKAGE_VERSION_STATE); */
+ /*printf("Compile options: %s %s %s %s",_DLT_SYSTEMD_ENABLE, _DLT_SYSTEMD_WATCHDOG_ENABLE, _DLT_TEST_ENABLE, _DLT_SHM_ENABLE); */
printf("%s", version);
printf("Usage: dlt-daemon [options]\n");
printf("Options:\n");
@@ -119,18 +119,17 @@ void usage()
/**
* Option handling
*/
-int option_handling(DltDaemonLocal *daemon_local,int argc, char* argv[])
- {
+int option_handling(DltDaemonLocal *daemon_local, int argc, char *argv[])
+{
int c;
- if (daemon_local==0)
- {
+ if (daemon_local == 0) {
fprintf (stderr, "Invalid parameter passed to option_handling()\n");
return -1;
}
/* Initialize flags */
- memset(daemon_local,0,sizeof(DltDaemonLocal));
+ memset(daemon_local, 0, sizeof(DltDaemonLocal));
/* default values */
daemon_local->flags.port = DLT_DAEMON_TCP_PORT;
@@ -139,9 +138,7 @@ int option_handling(DltDaemonLocal *daemon_local,int argc, char* argv[])
opterr = 0;
while ((c = getopt (argc, argv, "hdc:t:p:")) != -1)
- {
- switch (c)
- {
+ switch (c) {
case 'd':
{
daemon_local->flags.dflag = 1;
@@ -149,7 +146,7 @@ int option_handling(DltDaemonLocal *daemon_local,int argc, char* argv[])
}
case 'c':
{
- strncpy(daemon_local->flags.cvalue,optarg,NAME_MAX);
+ strncpy(daemon_local->flags.cvalue, optarg, NAME_MAX);
break;
}
case 't':
@@ -160,11 +157,12 @@ int option_handling(DltDaemonLocal *daemon_local,int argc, char* argv[])
case 'p':
{
daemon_local->flags.port = atoi(optarg);
- if (daemon_local->flags.port == 0)
- {
- fprintf (stderr, "Invalid port `%s' specified.\n", optarg);
- return -1;
+
+ if (daemon_local->flags.port == 0) {
+ fprintf (stderr, "Invalid port `%s' specified.\n", optarg);
+ return -1;
}
+
break;
}
case 'h':
@@ -174,18 +172,13 @@ int option_handling(DltDaemonLocal *daemon_local,int argc, char* argv[])
}
case '?':
{
- if (optopt == 'c' || optopt == 't' || optopt == 'p')
- {
+ if ((optopt == 'c') || (optopt == 't') || (optopt == 'p'))
fprintf (stderr, "Option -%c requires an argument.\n", optopt);
- }
else if (isprint (optopt))
- {
fprintf (stderr, "Unknown option `-%c'.\n", optopt);
- }
else
- {
- fprintf (stderr, "Unknown option character `\\x%x'.\n",optopt);
- }
+ fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt);
+
/* unknown or wrong option used, show usage information and terminate */
usage();
return -1;
@@ -196,7 +189,7 @@ int option_handling(DltDaemonLocal *daemon_local,int argc, char* argv[])
return -1;
}
} /* switch() */
- }
+
#ifndef DLT_USE_UNIX_SOCKET_IPC
snprintf(daemon_local->flags.userPipesDir, NAME_MAX + 1, "%s/dltpipes", dltFifoBaseDir);
@@ -205,385 +198,388 @@ int option_handling(DltDaemonLocal *daemon_local,int argc, char* argv[])
return 0;
- } /* option_handling() */
+} /* option_handling() */
/**
* Option file parser
*/
int option_file_parser(DltDaemonLocal *daemon_local)
{
- FILE * pFile;
- int value_length = 1024;
- char line[value_length-1];
- char token[value_length];
- char value[value_length];
+ FILE *pFile;
+ int value_length = 1024;
+ char line[value_length - 1];
+ char token[value_length];
+ char value[value_length];
char *pch;
const char *filename;
- /* set default values for configuration */
- daemon_local->flags.sharedMemorySize = DLT_SHM_SIZE;
- daemon_local->flags.sendMessageTime = 0;
- daemon_local->flags.offlineTraceDirectory[0] = 0;
- daemon_local->flags.offlineTraceFileSize = 1000000;
- daemon_local->flags.offlineTraceMaxSize = 0;
- daemon_local->flags.offlineTraceFilenameTimestampBased = 1;
- daemon_local->flags.loggingMode = DLT_LOG_TO_CONSOLE;
- daemon_local->flags.loggingLevel = LOG_INFO;
- snprintf(daemon_local->flags.loggingFilename, sizeof(daemon_local->flags.loggingFilename)-1, "%s/dlt.log", dltFifoBaseDir);
- daemon_local->flags.loggingFilename[sizeof(daemon_local->flags.loggingFilename)-1]=0;
- daemon_local->timeoutOnSend = 4;
- daemon_local->RingbufferMinSize = DLT_DAEMON_RINGBUFFER_MIN_SIZE;
- daemon_local->RingbufferMaxSize = DLT_DAEMON_RINGBUFFER_MAX_SIZE;
- daemon_local->RingbufferStepSize = DLT_DAEMON_RINGBUFFER_STEP_SIZE;
- daemon_local->daemonFifoSize = 0;
- daemon_local->flags.sendECUSoftwareVersion = 0;
- memset(daemon_local->flags.pathToECUSoftwareVersion, 0, sizeof(daemon_local->flags.pathToECUSoftwareVersion));
- daemon_local->flags.sendTimezone = 0;
- daemon_local->flags.offlineLogstorageMaxDevices = 0;
- daemon_local->flags.offlineLogstorageDirPath[0] = 0;
- daemon_local->flags.offlineLogstorageMaxDevices = 0;
- daemon_local->flags.offlineLogstorageTimestamp = 1;
- daemon_local->flags.offlineLogstorageDelimiter = '_';
- daemon_local->flags.offlineLogstorageMaxCounter = UINT_MAX;
- daemon_local->flags.offlineLogstorageMaxCounterIdx = 0;
- daemon_local->flags.offlineLogstorageCacheSize = 30000; /* 30MB */
- dlt_daemon_logstorage_set_logstorage_cache_size(
- daemon_local->flags.offlineLogstorageCacheSize);
- strncpy(daemon_local->flags.ctrlSockPath,
+ /* set default values for configuration */
+ daemon_local->flags.sharedMemorySize = DLT_SHM_SIZE;
+ daemon_local->flags.sendMessageTime = 0;
+ daemon_local->flags.offlineTraceDirectory[0] = 0;
+ daemon_local->flags.offlineTraceFileSize = 1000000;
+ daemon_local->flags.offlineTraceMaxSize = 0;
+ daemon_local->flags.offlineTraceFilenameTimestampBased = 1;
+ daemon_local->flags.loggingMode = DLT_LOG_TO_CONSOLE;
+ daemon_local->flags.loggingLevel = LOG_INFO;
+ snprintf(daemon_local->flags.loggingFilename,
+ sizeof(daemon_local->flags.loggingFilename) - 1,
+ "%s/dlt.log",
+ dltFifoBaseDir);
+ daemon_local->flags.loggingFilename[sizeof(daemon_local->flags.loggingFilename) - 1] = 0;
+ daemon_local->timeoutOnSend = 4;
+ daemon_local->RingbufferMinSize = DLT_DAEMON_RINGBUFFER_MIN_SIZE;
+ daemon_local->RingbufferMaxSize = DLT_DAEMON_RINGBUFFER_MAX_SIZE;
+ daemon_local->RingbufferStepSize = DLT_DAEMON_RINGBUFFER_STEP_SIZE;
+ daemon_local->daemonFifoSize = 0;
+ daemon_local->flags.sendECUSoftwareVersion = 0;
+ memset(daemon_local->flags.pathToECUSoftwareVersion, 0, sizeof(daemon_local->flags.pathToECUSoftwareVersion));
+ daemon_local->flags.sendTimezone = 0;
+ daemon_local->flags.offlineLogstorageMaxDevices = 0;
+ daemon_local->flags.offlineLogstorageDirPath[0] = 0;
+ daemon_local->flags.offlineLogstorageMaxDevices = 0;
+ daemon_local->flags.offlineLogstorageTimestamp = 1;
+ daemon_local->flags.offlineLogstorageDelimiter = '_';
+ daemon_local->flags.offlineLogstorageMaxCounter = UINT_MAX;
+ daemon_local->flags.offlineLogstorageMaxCounterIdx = 0;
+ daemon_local->flags.offlineLogstorageCacheSize = 30000; /* 30MB */
+ dlt_daemon_logstorage_set_logstorage_cache_size(
+ daemon_local->flags.offlineLogstorageCacheSize);
+ strncpy(daemon_local->flags.ctrlSockPath,
DLT_DAEMON_DEFAULT_CTRL_SOCK_PATH,
sizeof(daemon_local->flags.ctrlSockPath) - 1);
#ifdef DLT_USE_UNIX_SOCKET_IPC
- snprintf(daemon_local->flags.appSockPath, DLT_IPC_PATH_MAX, "%s/dlt", DLT_USER_IPC_PATH);
- if (strlen(DLT_USER_IPC_PATH) > DLT_IPC_PATH_MAX)
- {
- fprintf(stderr,"Provided path too long...trimming it to path[%s]\n",
- daemon_local->flags.appSockPath);
- }
+ snprintf(daemon_local->flags.appSockPath, DLT_IPC_PATH_MAX, "%s/dlt", DLT_USER_IPC_PATH);
+
+ if (strlen(DLT_USER_IPC_PATH) > DLT_IPC_PATH_MAX)
+ fprintf(stderr, "Provided path too long...trimming it to path[%s]\n",
+ daemon_local->flags.appSockPath);
+
#endif
- daemon_local->flags.gatewayMode = 0;
+ daemon_local->flags.gatewayMode = 0;
strncpy(daemon_local->flags.gatewayConfigFile,
DLT_GATEWAY_CONFIG_PATH,
DLT_DAEMON_FLAG_MAX - 1);
- daemon_local->flags.autoResponseGetLogInfoOption = 7;
- daemon_local->flags.contextLogLevel = DLT_LOG_INFO;
- daemon_local->flags.contextTraceStatus = DLT_TRACE_STATUS_OFF;
- daemon_local->flags.enforceContextLLAndTS = 0; /* default is off */
-
- /* open configuration file */
- if(daemon_local->flags.cvalue[0])
- filename = daemon_local->flags.cvalue;
- else
- filename = CONFIGURATION_FILES_DIR "/dlt.conf";
- //printf("Load configuration from file: %s\n",filename);
- pFile = fopen (filename,"r");
-
- if (pFile!=NULL)
- {
- while(1)
- {
+ daemon_local->flags.autoResponseGetLogInfoOption = 7;
+ daemon_local->flags.contextLogLevel = DLT_LOG_INFO;
+ daemon_local->flags.contextTraceStatus = DLT_TRACE_STATUS_OFF;
+ daemon_local->flags.enforceContextLLAndTS = 0; /* default is off */
+
+ /* open configuration file */
+ if (daemon_local->flags.cvalue[0])
+ filename = daemon_local->flags.cvalue;
+ else
+ filename = CONFIGURATION_FILES_DIR "/dlt.conf";
+
+ /*printf("Load configuration from file: %s\n",filename); */
+ pFile = fopen (filename, "r");
+
+ if (pFile != NULL) {
+ while (1) {
/* fetch line from configuration file */
- if ( fgets (line , value_length - 1 , pFile) != NULL )
- {
- pch = strtok (line," =\r\n");
- token[0]=0;
- value[0]=0;
-
- while (pch != NULL)
- {
- if(strcmp(pch,"#")==0)
+ if (fgets (line, value_length - 1, pFile) != NULL) {
+ pch = strtok (line, " =\r\n");
+ token[0] = 0;
+ value[0] = 0;
+
+ while (pch != NULL) {
+ if (strcmp(pch, "#") == 0)
break;
- if(token[0]==0)
- {
- strncpy(token,pch,sizeof(token) - 1);
- token[sizeof(token) - 1]=0;
+ if (token[0] == 0) {
+ strncpy(token, pch, sizeof(token) - 1);
+ token[sizeof(token) - 1] = 0;
}
- else
- {
- strncpy(value,pch,sizeof(value) - 1);
- value[sizeof(value) - 1]=0;
+ else {
+ strncpy(value, pch, sizeof(value) - 1);
+ value[sizeof(value) - 1] = 0;
break;
}
pch = strtok (NULL, " =\r\n");
- }
-
- if(token[0] && value[0])
- {
- /* parse arguments here */
- if(strcmp(token,"Verbose")==0)
- {
- daemon_local->flags.vflag = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"PrintASCII")==0)
- {
- daemon_local->flags.aflag = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"PrintHex")==0)
- {
- daemon_local->flags.xflag = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"PrintHeadersOnly")==0)
- {
- daemon_local->flags.sflag = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"SendSerialHeader")==0)
- {
- daemon_local->flags.lflag = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"SendContextRegistration")==0)
- {
- daemon_local->flags.rflag = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"SendContextRegistrationOption")==0)
- {
- daemon_local->flags.autoResponseGetLogInfoOption = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"SendMessageTime")==0)
- {
- daemon_local->flags.sendMessageTime = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"RS232SyncSerialHeader")==0)
- {
- daemon_local->flags.mflag = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"TCPSyncSerialHeader")==0)
- {
- daemon_local->flags.nflag = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"RS232DeviceName")==0)
- {
- strncpy(daemon_local->flags.yvalue,value,NAME_MAX);
- daemon_local->flags.yvalue[NAME_MAX]=0;
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"RS232Baudrate")==0)
- {
- strncpy(daemon_local->flags.bvalue,value,NAME_MAX);
- daemon_local->flags.bvalue[NAME_MAX]=0;
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"ECUId")==0)
- {
- strncpy(daemon_local->flags.evalue,value,NAME_MAX);
- daemon_local->flags.evalue[NAME_MAX]=0;
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"PersistanceStoragePath")==0)
- {
- strncpy(daemon_local->flags.ivalue,value,NAME_MAX);
- daemon_local->flags.ivalue[NAME_MAX]=0;
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"LoggingMode")==0)
- {
- daemon_local->flags.loggingMode = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"LoggingLevel")==0)
- {
- daemon_local->flags.loggingLevel = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"LoggingFilename")==0)
- {
- strncpy(daemon_local->flags.loggingFilename,value,sizeof(daemon_local->flags.loggingFilename) - 1);
- daemon_local->flags.loggingFilename[sizeof(daemon_local->flags.loggingFilename) - 1]=0;
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"TimeOutOnSend")==0)
- {
- daemon_local->timeoutOnSend = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"RingbufferMinSize")==0)
- {
- sscanf(value,"%lu",&(daemon_local->RingbufferMinSize));
- }
- else if(strcmp(token,"RingbufferMaxSize")==0)
- {
- sscanf(value,"%lu",&(daemon_local->RingbufferMaxSize));
- }
- else if(strcmp(token,"RingbufferStepSize")==0)
- {
- sscanf(value,"%lu",&(daemon_local->RingbufferStepSize));
- }
- else if(strcmp(token,"DaemonFIFOSize")==0)
- {
- sscanf(value,"%lu",&(daemon_local->daemonFifoSize));
- }
- else if(strcmp(token,"SharedMemorySize")==0)
- {
- daemon_local->flags.sharedMemorySize = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"OfflineTraceDirectory")==0)
- {
- strncpy(daemon_local->flags.offlineTraceDirectory,value,sizeof(daemon_local->flags.offlineTraceDirectory) - 1);
- daemon_local->flags.offlineTraceDirectory[sizeof(daemon_local->flags.offlineTraceDirectory) - 1]=0;
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"OfflineTraceFileSize")==0)
- {
- daemon_local->flags.offlineTraceFileSize = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"OfflineTraceMaxSize")==0)
- {
- daemon_local->flags.offlineTraceMaxSize = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"OfflineTraceFileNameTimestampBased")==0)
- {
- daemon_local->flags.offlineTraceFilenameTimestampBased = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"SendECUSoftwareVersion")==0)
- {
- daemon_local->flags.sendECUSoftwareVersion = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"PathToECUSoftwareVersion")==0)
- {
- strncpy(daemon_local->flags.pathToECUSoftwareVersion,value,sizeof(daemon_local->flags.pathToECUSoftwareVersion) - 1);
- daemon_local->flags.pathToECUSoftwareVersion[sizeof(daemon_local->flags.pathToECUSoftwareVersion) - 1]=0;
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"SendTimezone")==0)
- {
- daemon_local->flags.sendTimezone = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token, "OfflineLogstorageMaxDevices") == 0)
- {
- daemon_local->flags.offlineLogstorageMaxDevices = atoi(value);
- }
- else if(strcmp(token, "OfflineLogstorageDirPath") == 0)
- {
- strncpy(daemon_local->flags.offlineLogstorageDirPath,
- value,
- sizeof(daemon_local->flags.offlineLogstorageDirPath) - 1);
- }
- else if(strcmp(token, "OfflineLogstorageTimestamp") == 0)
- {
- /* Check if set to 0, default otherwise */
- if(atoi(value) == 0)
- {
- daemon_local->flags.offlineLogstorageTimestamp = 0;
- }
- }
- else if(strcmp(token, "OfflineLogstorageDelimiter") == 0)
- {
- /* Check if valid punctuation, default otherwise*/
- if(ispunct((char)value[0]))
- {
- daemon_local->flags.offlineLogstorageDelimiter = (char)value[0];
- }
- }
- else if(strcmp(token, "OfflineLogstorageMaxCounter") == 0)
- {
- daemon_local->flags.offlineLogstorageMaxCounter = atoi(value);
- daemon_local->flags.offlineLogstorageMaxCounterIdx = strlen(value);
- }
- else if(strcmp(token, "OfflineLogstorageCacheSize") == 0)
- {
- daemon_local->flags.offlineLogstorageCacheSize =
- (unsigned int)atoi(value);
- dlt_daemon_logstorage_set_logstorage_cache_size(
- daemon_local->flags.offlineLogstorageCacheSize);
- }
- else if(strcmp(token,"ControlSocketPath") == 0)
- {
- memset(
- daemon_local->flags.ctrlSockPath,
- 0,
- DLT_DAEMON_FLAG_MAX);
- strncpy(
- daemon_local->flags.ctrlSockPath,
+ }
+
+ if (token[0] && value[0]) {
+ /* parse arguments here */
+ if (strcmp(token, "Verbose") == 0) {
+ daemon_local->flags.vflag = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "PrintASCII") == 0)
+ {
+ daemon_local->flags.aflag = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "PrintHex") == 0)
+ {
+ daemon_local->flags.xflag = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "PrintHeadersOnly") == 0)
+ {
+ daemon_local->flags.sflag = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "SendSerialHeader") == 0)
+ {
+ daemon_local->flags.lflag = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "SendContextRegistration") == 0)
+ {
+ daemon_local->flags.rflag = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "SendContextRegistrationOption") == 0)
+ {
+ daemon_local->flags.autoResponseGetLogInfoOption = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "SendMessageTime") == 0)
+ {
+ daemon_local->flags.sendMessageTime = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "RS232SyncSerialHeader") == 0)
+ {
+ daemon_local->flags.mflag = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "TCPSyncSerialHeader") == 0)
+ {
+ daemon_local->flags.nflag = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "RS232DeviceName") == 0)
+ {
+ strncpy(daemon_local->flags.yvalue, value, NAME_MAX);
+ daemon_local->flags.yvalue[NAME_MAX] = 0;
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "RS232Baudrate") == 0)
+ {
+ strncpy(daemon_local->flags.bvalue, value, NAME_MAX);
+ daemon_local->flags.bvalue[NAME_MAX] = 0;
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "ECUId") == 0)
+ {
+ strncpy(daemon_local->flags.evalue, value, NAME_MAX);
+ daemon_local->flags.evalue[NAME_MAX] = 0;
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "PersistanceStoragePath") == 0)
+ {
+ strncpy(daemon_local->flags.ivalue, value, NAME_MAX);
+ daemon_local->flags.ivalue[NAME_MAX] = 0;
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "LoggingMode") == 0)
+ {
+ daemon_local->flags.loggingMode = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "LoggingLevel") == 0)
+ {
+ daemon_local->flags.loggingLevel = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "LoggingFilename") == 0)
+ {
+ strncpy(daemon_local->flags.loggingFilename,
value,
- DLT_DAEMON_FLAG_MAX-1);
- }
- else if(strcmp(token,"GatewayMode")==0)
- {
- daemon_local->flags.gatewayMode = atoi(value);
- //printf("Option: %s=%s\n",token,value);
- }
- else if(strcmp(token,"GatewayConfigFile")==0)
- {
- memset(
- daemon_local->flags.gatewayConfigFile,
- 0,
- DLT_DAEMON_FLAG_MAX);
- strncpy(
- daemon_local->flags.gatewayConfigFile,
+ sizeof(daemon_local->flags.loggingFilename) - 1);
+ daemon_local->flags.loggingFilename[sizeof(daemon_local->flags.loggingFilename) - 1] = 0;
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "TimeOutOnSend") == 0)
+ {
+ daemon_local->timeoutOnSend = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "RingbufferMinSize") == 0)
+ {
+ sscanf(value, "%lu", &(daemon_local->RingbufferMinSize));
+ }
+ else if (strcmp(token, "RingbufferMaxSize") == 0)
+ {
+ sscanf(value, "%lu", &(daemon_local->RingbufferMaxSize));
+ }
+ else if (strcmp(token, "RingbufferStepSize") == 0)
+ {
+ sscanf(value, "%lu", &(daemon_local->RingbufferStepSize));
+ }
+ else if (strcmp(token, "DaemonFIFOSize") == 0)
+ {
+ sscanf(value, "%lu", &(daemon_local->daemonFifoSize));
+ }
+ else if (strcmp(token, "SharedMemorySize") == 0)
+ {
+ daemon_local->flags.sharedMemorySize = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "OfflineTraceDirectory") == 0)
+ {
+ strncpy(daemon_local->flags.offlineTraceDirectory, value,
+ sizeof(daemon_local->flags.offlineTraceDirectory) - 1);
+ daemon_local->flags.offlineTraceDirectory[sizeof(daemon_local->flags.offlineTraceDirectory) -
+ 1] = 0;
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "OfflineTraceFileSize") == 0)
+ {
+ daemon_local->flags.offlineTraceFileSize = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "OfflineTraceMaxSize") == 0)
+ {
+ daemon_local->flags.offlineTraceMaxSize = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "OfflineTraceFileNameTimestampBased") == 0)
+ {
+ daemon_local->flags.offlineTraceFilenameTimestampBased = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "SendECUSoftwareVersion") == 0)
+ {
+ daemon_local->flags.sendECUSoftwareVersion = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "PathToECUSoftwareVersion") == 0)
+ {
+ strncpy(daemon_local->flags.pathToECUSoftwareVersion, value,
+ sizeof(daemon_local->flags.pathToECUSoftwareVersion) - 1);
+ daemon_local->flags.pathToECUSoftwareVersion[sizeof(daemon_local->flags.pathToECUSoftwareVersion)
+ - 1] = 0;
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "SendTimezone") == 0)
+ {
+ daemon_local->flags.sendTimezone = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "OfflineLogstorageMaxDevices") == 0)
+ {
+ daemon_local->flags.offlineLogstorageMaxDevices = atoi(value);
+ }
+ else if (strcmp(token, "OfflineLogstorageDirPath") == 0)
+ {
+ strncpy(daemon_local->flags.offlineLogstorageDirPath,
value,
- DLT_DAEMON_FLAG_MAX-1);
+ sizeof(daemon_local->flags.offlineLogstorageDirPath) - 1);
+ }
+ else if (strcmp(token, "OfflineLogstorageTimestamp") == 0)
+ {
+ /* Check if set to 0, default otherwise */
+ if (atoi(value) == 0)
+ daemon_local->flags.offlineLogstorageTimestamp = 0;
+ }
+ else if (strcmp(token, "OfflineLogstorageDelimiter") == 0)
+ {
+ /* Check if valid punctuation, default otherwise*/
+ if (ispunct((char)value[0]))
+ daemon_local->flags.offlineLogstorageDelimiter = (char)value[0];
+ }
+ else if (strcmp(token, "OfflineLogstorageMaxCounter") == 0)
+ {
+ daemon_local->flags.offlineLogstorageMaxCounter = atoi(value);
+ daemon_local->flags.offlineLogstorageMaxCounterIdx = strlen(value);
+ }
+ else if (strcmp(token, "OfflineLogstorageCacheSize") == 0)
+ {
+ daemon_local->flags.offlineLogstorageCacheSize =
+ (unsigned int)atoi(value);
+ dlt_daemon_logstorage_set_logstorage_cache_size(
+ daemon_local->flags.offlineLogstorageCacheSize);
+ }
+ else if (strcmp(token, "ControlSocketPath") == 0)
+ {
+ memset(
+ daemon_local->flags.ctrlSockPath,
+ 0,
+ DLT_DAEMON_FLAG_MAX);
+ strncpy(
+ daemon_local->flags.ctrlSockPath,
+ value,
+ DLT_DAEMON_FLAG_MAX - 1);
+ }
+ else if (strcmp(token, "GatewayMode") == 0)
+ {
+ daemon_local->flags.gatewayMode = atoi(value);
+ /*printf("Option: %s=%s\n",token,value); */
+ }
+ else if (strcmp(token, "GatewayConfigFile") == 0)
+ {
+ memset(
+ daemon_local->flags.gatewayConfigFile,
+ 0,
+ DLT_DAEMON_FLAG_MAX);
+ strncpy(
+ daemon_local->flags.gatewayConfigFile,
+ value,
+ DLT_DAEMON_FLAG_MAX - 1);
+ }
+ else if (strcmp(token, "ContextLogLevel") == 0)
+ {
+ int const intval = atoi(value);
+
+ if ((intval >= DLT_LOG_OFF) && (intval <= DLT_LOG_VERBOSE)) {
+ daemon_local->flags.contextLogLevel = intval;
+ printf("Option: %s=%s\n", token, value);
}
- else if(strcmp(token,"ContextLogLevel")==0)
- {
- int const intval = atoi(value);
- if ( (intval >= DLT_LOG_OFF) && (intval <= DLT_LOG_VERBOSE))
- {
- daemon_local->flags.contextLogLevel = intval;
- printf("Option: %s=%s\n",token,value);
- }
- else
- {
- fprintf(stderr, "Invalid value for ContextLogLevel: %i. Must be in range [%i..%i]\n", intval, DLT_LOG_OFF, DLT_LOG_VERBOSE);
- }
+ else {
+ fprintf(stderr,
+ "Invalid value for ContextLogLevel: %i. Must be in range [%i..%i]\n",
+ intval,
+ DLT_LOG_OFF,
+ DLT_LOG_VERBOSE);
}
- else if(strcmp(token,"ContextTraceStatus")==0)
- {
- int const intval = atoi(value);
- if ( (intval >= DLT_TRACE_STATUS_OFF) && (intval <= DLT_TRACE_STATUS_ON))
- {
- daemon_local->flags.contextTraceStatus = intval;
- printf("Option: %s=%s\n",token,value);
- }
- else
- {
- fprintf(stderr, "Invalid value for ContextTraceStatus: %i. Must be in range [%i..%i]\n", intval, DLT_TRACE_STATUS_OFF, DLT_TRACE_STATUS_ON);
- }
+ }
+ else if (strcmp(token, "ContextTraceStatus") == 0)
+ {
+ int const intval = atoi(value);
+
+ if ((intval >= DLT_TRACE_STATUS_OFF) && (intval <= DLT_TRACE_STATUS_ON)) {
+ daemon_local->flags.contextTraceStatus = intval;
+ printf("Option: %s=%s\n", token, value);
}
- else if(strcmp(token,"ForceContextLogLevelAndTraceStatus")==0)
- {
- int const intval = atoi(value);
- if ( (intval >= 0) && (intval <= 1))
- {
- daemon_local->flags.enforceContextLLAndTS = intval;
- printf("Option: %s=%s\n",token,value);
- }
- else
- {
- fprintf(stderr, "Invalid value for ForceContextLogLevelAndTraceStatus: %i. Must be 0, 1\n", intval);
- }
+ else {
+ fprintf(stderr,
+ "Invalid value for ContextTraceStatus: %i. Must be in range [%i..%i]\n",
+ intval,
+ DLT_TRACE_STATUS_OFF,
+ DLT_TRACE_STATUS_ON);
+ }
+ }
+ else if (strcmp(token, "ForceContextLogLevelAndTraceStatus") == 0)
+ {
+ int const intval = atoi(value);
+
+ if ((intval >= 0) && (intval <= 1)) {
+ daemon_local->flags.enforceContextLLAndTS = intval;
+ printf("Option: %s=%s\n", token, value);
}
- else
- {
- fprintf(stderr, "Unknown option: %s=%s\n",token,value);
+ else {
+ fprintf(stderr,
+ "Invalid value for ForceContextLogLevelAndTraceStatus: %i. Must be 0, 1\n",
+ intval);
}
}
+ else {
+ fprintf(stderr, "Unknown option: %s=%s\n", token, value);
+ }
+ }
}
- else
- {
+ else {
break;
}
}
+
fclose (pFile);
}
- else
- {
- fprintf(stderr, "Cannot open configuration file: %s\n",filename);
+ else {
+ fprintf(stderr, "Cannot open configuration file: %s\n", filename);
}
return 0;
@@ -594,18 +590,16 @@ static DltReturnValue dlt_daemon_create_pipes_dir(char *dir)
{
int ret = DLT_RETURN_OK;
- if (dir == NULL)
- {
+ if (dir == NULL) {
dlt_vlog(LOG_ERR, "%s: Invalid parameter\n", __func__);
return DLT_RETURN_WRONG_PARAMETER;
}
/* create dlt pipes directory */
ret = mkdir(dir,
- S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH|S_ISVTX);
+ S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH | S_ISVTX);
- if ((ret == -1) && (errno != EEXIST))
- {
+ if ((ret == -1) && (errno != EEXIST)) {
dlt_vlog(LOG_ERR,
"FIFO user dir %s cannot be created (%s)!\n",
dir,
@@ -614,12 +608,12 @@ static DltReturnValue dlt_daemon_create_pipes_dir(char *dir)
return DLT_RETURN_ERROR;
}
- // S_ISGID cannot be set by mkdir, let's reassign right bits
+ /* S_ISGID cannot be set by mkdir, let's reassign right bits */
ret = chmod(dir,
- S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH|S_ISGID|S_ISVTX);
+ S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP | S_IROTH | S_IWOTH | S_IXOTH | S_ISGID |
+ S_ISVTX);
- if (ret == -1)
- {
+ if (ret == -1) {
dlt_vlog(LOG_ERR,
"FIFO user dir %s cannot be chmoded (%s)!\n",
dir,
@@ -635,7 +629,7 @@ static DltReturnValue dlt_daemon_create_pipes_dir(char *dir)
/**
* Main function of tool.
*/
-int main(int argc, char* argv[])
+int main(int argc, char *argv[])
{
char version[DLT_DAEMON_TEXTBUFSIZE];
DltDaemonLocal daemon_local;
@@ -646,20 +640,18 @@ int main(int argc, char* argv[])
memset(&daemon, 0, sizeof(DltDaemon));
/* Command line option handling */
- if ((back = option_handling(&daemon_local,argc,argv))<0)
- {
- if(back!=-2) {
+ if ((back = option_handling(&daemon_local, argc, argv)) < 0) {
+ if (back != -2)
fprintf (stderr, "option_handling() failed!\n");
- }
+
return -1;
}
/* Configuration file option handling */
- if ((back = option_file_parser(&daemon_local))<0)
- {
- if(back!=-2) {
+ if ((back = option_file_parser(&daemon_local)) < 0) {
+ if (back != -2)
fprintf (stderr, "option_file_parser() failed!\n");
- }
+
return -1;
}
@@ -669,78 +661,75 @@ int main(int argc, char* argv[])
dlt_log_init(daemon_local.flags.loggingMode);
/* Print version information */
- dlt_get_version(version,DLT_DAEMON_TEXTBUFSIZE);
+ dlt_get_version(version, DLT_DAEMON_TEXTBUFSIZE);
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE,"Starting DLT Daemon; %s\n", version );
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE, "Starting DLT Daemon; %s\n", version);
dlt_log(LOG_NOTICE, str);
PRINT_FUNCTION_VERBOSE(daemon_local.flags.vflag);
#ifndef DLT_USE_UNIX_SOCKET_IPC
+
/* Make sure the parent user directory is created */
- if (dlt_mkdir_recursive(dltFifoBaseDir) != 0)
- {
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE, "Base dir %s cannot be created!\n", dltFifoBaseDir);
- dlt_log(LOG_ERR, str);
- return -1;
+ if (dlt_mkdir_recursive(dltFifoBaseDir) != 0) {
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE, "Base dir %s cannot be created!\n", dltFifoBaseDir);
+ dlt_log(LOG_ERR, str);
+ return -1;
}
+
#endif
/* --- Daemon init phase 1 begin --- */
- if (dlt_daemon_local_init_p1(&daemon, &daemon_local, daemon_local.flags.vflag)==-1)
- {
- dlt_log(LOG_CRIT,"Initialization of phase 1 failed!\n");
+ if (dlt_daemon_local_init_p1(&daemon, &daemon_local, daemon_local.flags.vflag) == -1) {
+ dlt_log(LOG_CRIT, "Initialization of phase 1 failed!\n");
return -1;
}
+
/* --- Daemon init phase 1 end --- */
- if (dlt_daemon_prepare_event_handling(&daemon_local.pEvent))
- {
+ if (dlt_daemon_prepare_event_handling(&daemon_local.pEvent)) {
/* TODO: Perform clean-up */
- dlt_log(LOG_CRIT,"Initialization of event handling failed!\n");
+ dlt_log(LOG_CRIT, "Initialization of event handling failed!\n");
return -1;
}
/* --- Daemon connection init begin */
- if (dlt_daemon_local_connection_init(&daemon, &daemon_local, daemon_local.flags.vflag)==-1)
- {
- dlt_log(LOG_CRIT,"Initialization of local connections failed!\n");
+ if (dlt_daemon_local_connection_init(&daemon, &daemon_local, daemon_local.flags.vflag) == -1) {
+ dlt_log(LOG_CRIT, "Initialization of local connections failed!\n");
return -1;
}
+
/* --- Daemon connection init end */
/* --- Daemon init phase 2 begin --- */
- if (dlt_daemon_local_init_p2(&daemon, &daemon_local, daemon_local.flags.vflag)==-1)
- {
- dlt_log(LOG_CRIT,"Initialization of phase 2 failed!\n");
+ if (dlt_daemon_local_init_p2(&daemon, &daemon_local, daemon_local.flags.vflag) == -1) {
+ dlt_log(LOG_CRIT, "Initialization of phase 2 failed!\n");
return -1;
}
+
/* --- Daemon init phase 2 end --- */
- if(daemon_local.flags.offlineLogstorageDirPath[0])
- {
+ if (daemon_local.flags.offlineLogstorageDirPath[0]) {
if (dlt_daemon_logstorage_setup_internal_storage(
&daemon,
&daemon_local,
daemon_local.flags.offlineLogstorageDirPath,
daemon_local.flags.vflag) == -1)
- {
dlt_log(LOG_INFO,
"Setting up internal offline log storage failed!\n");
- }
}
- // create fd for watchdog
+ /* create fd for watchdog */
#ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
{
- char* watchdogUSec = getenv("WATCHDOG_USEC");
+ char *watchdogUSec = getenv("WATCHDOG_USEC");
int watchdogTimeoutSeconds = 0;
dlt_log(LOG_DEBUG, "Systemd watchdog initialization\n");
- if( watchdogUSec )
- {
- watchdogTimeoutSeconds = atoi(watchdogUSec)/2000000;
- }
+
+ if (watchdogUSec)
+ watchdogTimeoutSeconds = atoi(watchdogUSec) / 2000000;
+
watchdog_trigger_interval = watchdogTimeoutSeconds;
create_timer_fd(&daemon_local,
watchdogTimeoutSeconds,
@@ -749,21 +738,17 @@ int main(int argc, char* argv[])
}
#endif
- // create fd for timer timing packets
+ /* create fd for timer timing packets */
create_timer_fd(&daemon_local, 1, 1, DLT_TIMER_PACKET);
- // create fd for timer ecu version
- if((daemon_local.flags.sendECUSoftwareVersion > 0) ||
- (daemon_local.flags.sendTimezone > 0))
- {
+ /* create fd for timer ecu version */
+ if ((daemon_local.flags.sendECUSoftwareVersion > 0) ||
+ (daemon_local.flags.sendTimezone > 0))
create_timer_fd(&daemon_local, 60, 60, DLT_TIMER_ECU);
- }
/* initiate gateway */
- if (daemon_local.flags.gatewayMode == 1)
- {
- if (dlt_gateway_init(&daemon_local, daemon_local.flags.vflag) == -1)
- {
+ if (daemon_local.flags.gatewayMode == 1) {
+ if (dlt_gateway_init(&daemon_local, daemon_local.flags.vflag) == -1) {
dlt_log(LOG_CRIT, "Fail to create gateway\n");
return -1;
}
@@ -775,36 +760,36 @@ int main(int argc, char* argv[])
DLT_TIMER_GATEWAY);
}
- // For offline tracing we still can use the same states
- // as for socket sending. Using this trick we see the traces
- // In the offline trace AND in the socket stream.
- if(daemon_local.flags.yvalue[0])
- dlt_daemon_change_state(&daemon,DLT_DAEMON_STATE_SEND_DIRECT);
+ /* For offline tracing we still can use the same states */
+ /* as for socket sending. Using this trick we see the traces */
+ /* In the offline trace AND in the socket stream. */
+ if (daemon_local.flags.yvalue[0])
+ dlt_daemon_change_state(&daemon, DLT_DAEMON_STATE_SEND_DIRECT);
else
- dlt_daemon_change_state(&daemon,DLT_DAEMON_STATE_BUFFER);
+ dlt_daemon_change_state(&daemon, DLT_DAEMON_STATE_BUFFER);
dlt_daemon_init_user_information(&daemon,
&daemon_local.pGateway,
daemon_local.flags.gatewayMode,
daemon_local.flags.vflag);
- if (dlt_daemon_load_runtime_configuration(&daemon, daemon_local.flags.ivalue,daemon_local.flags.vflag)==-1)
- {
- dlt_log(LOG_ERR,"Could not load runtime config\n");
+ if (dlt_daemon_load_runtime_configuration(&daemon, daemon_local.flags.ivalue, daemon_local.flags.vflag) == -1) {
+ dlt_log(LOG_ERR, "Could not load runtime config\n");
return -1;
}
- dlt_daemon_log_internal(&daemon, &daemon_local, "Daemon launched. Starting to output traces...", daemon_local.flags.vflag);
+ dlt_daemon_log_internal(&daemon,
+ &daemon_local,
+ "Daemon launched. Starting to output traces...",
+ daemon_local.flags.vflag);
/* Even handling loop. */
while ((back >= 0) && (g_exit >= 0))
- {
back = dlt_daemon_handle_event(&daemon_local.pEvent,
&daemon,
&daemon_local);
- }
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE,"Exiting DLT daemon... [%d]", g_signo);
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE, "Exiting DLT daemon... [%d]", g_signo);
dlt_daemon_log_internal(&daemon, &daemon_local, str, daemon_local.flags.vflag);
dlt_log(LOG_NOTICE, str);
@@ -825,8 +810,7 @@ int dlt_daemon_local_init_p1(DltDaemon *daemon, DltDaemonLocal *daemon_local, in
PRINT_FUNCTION_VERBOSE(verbose);
int ret = DLT_RETURN_OK;
- if ((daemon==0) || (daemon_local==0))
- {
+ if ((daemon == 0) || (daemon_local == 0)) {
dlt_log(LOG_ERR, "Invalid function parameters used for function dlt_daemon_local_init_p1()\n");
return -1;
}
@@ -834,50 +818,47 @@ int dlt_daemon_local_init_p1(DltDaemon *daemon, DltDaemonLocal *daemon_local, in
#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) || defined(DLT_SYSTEMD_ENABLE)
ret = sd_booted();
- if (ret == 0)
- {
+ if (ret == 0) {
dlt_log(LOG_CRIT, "System not booted with systemd!\n");
}
- else if(ret < 0)
+ else if (ret < 0)
{
dlt_log(LOG_CRIT, "sd_booted failed!\n");
return -1;
}
- else
- {
+ else {
dlt_log(LOG_INFO, "System booted with systemd\n");
}
+
#endif
#ifndef DLT_USE_UNIX_SOCKET_IPC
+
if (dlt_daemon_create_pipes_dir(daemon_local->flags.userPipesDir) == DLT_RETURN_ERROR)
- {
return DLT_RETURN_ERROR;
- }
+
#endif
/* Check for daemon mode */
if (daemon_local->flags.dflag)
- {
dlt_daemon_daemonize(daemon_local->flags.vflag);
- }
/* initialise structure to use DLT file */
- ret = dlt_file_init(&(daemon_local->file),daemon_local->flags.vflag);
- if (ret == DLT_RETURN_ERROR)
- {
- dlt_log(LOG_ERR,"Could not initialize file structure\n");
+ ret = dlt_file_init(&(daemon_local->file), daemon_local->flags.vflag);
+
+ if (ret == DLT_RETURN_ERROR) {
+ dlt_log(LOG_ERR, "Could not initialize file structure\n");
/* Return value ignored, dlt daemon will exit */
- dlt_file_free(&(daemon_local->file),daemon_local->flags.vflag);
+ dlt_file_free(&(daemon_local->file), daemon_local->flags.vflag);
return ret;
}
- signal(SIGPIPE,SIG_IGN);
+ signal(SIGPIPE, SIG_IGN);
signal(SIGTERM, dlt_daemon_signal_handler); /* software termination signal from kill */
- signal(SIGHUP, dlt_daemon_signal_handler); /* hangup signal */
+ signal(SIGHUP, dlt_daemon_signal_handler); /* hangup signal */
signal(SIGQUIT, dlt_daemon_signal_handler);
- signal(SIGINT, dlt_daemon_signal_handler);
+ signal(SIGINT, dlt_daemon_signal_handler);
return DLT_RETURN_OK;
}
@@ -886,98 +867,91 @@ int dlt_daemon_local_init_p2(DltDaemon *daemon, DltDaemonLocal *daemon_local, in
{
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon==0) || (daemon_local==0))
- {
+ if ((daemon == 0) || (daemon_local == 0)) {
dlt_log(LOG_ERR, "Invalid function parameters used for function dlt_daemon_local_init_p2()\n");
return -1;
}
/* Daemon data */
- if (dlt_daemon_init(daemon,daemon_local->RingbufferMinSize,daemon_local->RingbufferMaxSize,daemon_local->RingbufferStepSize, daemon_local->flags.ivalue,daemon_local->flags.contextLogLevel, daemon_local->flags.contextTraceStatus,daemon_local->flags.enforceContextLLAndTS,daemon_local->flags.vflag)==-1)
- {
- dlt_log(LOG_ERR,"Could not initialize daemon data\n");
+ if (dlt_daemon_init(daemon, daemon_local->RingbufferMinSize, daemon_local->RingbufferMaxSize,
+ daemon_local->RingbufferStepSize, daemon_local->flags.ivalue,
+ daemon_local->flags.contextLogLevel,
+ daemon_local->flags.contextTraceStatus, daemon_local->flags.enforceContextLLAndTS,
+ daemon_local->flags.vflag) == -1) {
+ dlt_log(LOG_ERR, "Could not initialize daemon data\n");
return -1;
}
/* init offline trace */
- if(((daemon->mode == DLT_USER_MODE_INTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH)) && daemon_local->flags.offlineTraceDirectory[0])
- {
+ if (((daemon->mode == DLT_USER_MODE_INTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH)) &&
+ daemon_local->flags.offlineTraceDirectory[0]) {
if (dlt_offline_trace_init(&(daemon_local->offlineTrace),
- daemon_local->flags.offlineTraceDirectory,
- daemon_local->flags.offlineTraceFileSize,
- daemon_local->flags.offlineTraceMaxSize,
- daemon_local->flags.offlineTraceFilenameTimestampBased)==-1)
- {
- dlt_log(LOG_ERR,"Could not initialize offline trace\n");
+ daemon_local->flags.offlineTraceDirectory,
+ daemon_local->flags.offlineTraceFileSize,
+ daemon_local->flags.offlineTraceMaxSize,
+ daemon_local->flags.offlineTraceFilenameTimestampBased) == -1) {
+ dlt_log(LOG_ERR, "Could not initialize offline trace\n");
return -1;
}
}
/* Init offline logstorage for MAX devices */
- if(daemon_local->flags.offlineLogstorageMaxDevices > 0)
- {
+ if (daemon_local->flags.offlineLogstorageMaxDevices > 0) {
daemon->storage_handle = malloc(sizeof(DltLogStorage) * daemon_local->flags.offlineLogstorageMaxDevices);
- if(daemon->storage_handle == NULL)
- {
- dlt_log(LOG_ERR,"Could not initialize offline logstorage\n");
+ if (daemon->storage_handle == NULL) {
+ dlt_log(LOG_ERR, "Could not initialize offline logstorage\n");
return -1;
}
+
memset(daemon->storage_handle, 0, (sizeof(DltLogStorage) * daemon_local->flags.offlineLogstorageMaxDevices));
}
/* Set ECU id of daemon */
if (daemon_local->flags.evalue[0])
- {
- dlt_set_id(daemon->ecuid,daemon_local->flags.evalue);
- }
+ dlt_set_id(daemon->ecuid, daemon_local->flags.evalue);
else
- {
- dlt_set_id(daemon->ecuid,DLT_DAEMON_ECU_ID);
- }
+ dlt_set_id(daemon->ecuid, DLT_DAEMON_ECU_ID);
/* Set flag for optional sending of serial header */
daemon->sendserialheader = daemon_local->flags.lflag;
#ifdef DLT_SHM_ENABLE
+
/* init shared memory */
- if (dlt_shm_init_server(&(daemon_local->dlt_shm),DLT_SHM_KEY,daemon_local->flags.sharedMemorySize)==-1)
- {
- dlt_log(LOG_ERR,"Could not initialize shared memory\n");
+ if (dlt_shm_init_server(&(daemon_local->dlt_shm), DLT_SHM_KEY, daemon_local->flags.sharedMemorySize) == -1) {
+ dlt_log(LOG_ERR, "Could not initialize shared memory\n");
return -1;
}
+
#endif
/* prepare main loop */
- if (dlt_message_init(&(daemon_local->msg),daemon_local->flags.vflag) == DLT_RETURN_ERROR)
- {
- dlt_log(LOG_ERR,"Could not initialize message\n");
+ if (dlt_message_init(&(daemon_local->msg), daemon_local->flags.vflag) == DLT_RETURN_ERROR) {
+ dlt_log(LOG_ERR, "Could not initialize message\n");
return -1;
}
/* configure sending timing packets */
if (daemon_local->flags.sendMessageTime)
- {
daemon->timingpackets = 1;
- }
/* Binary semaphore for thread */
- if (sem_init(&dlt_daemon_mutex, 0, 1)==-1)
- {
- dlt_log(LOG_ERR,"Could not initialize binary semaphore\n");
+ if (sem_init(&dlt_daemon_mutex, 0, 1) == -1) {
+ dlt_log(LOG_ERR, "Could not initialize binary semaphore\n");
return -1;
}
/* Get ECU version info from a file. If it fails, use dlt_version as fallback. */
- if(dlt_daemon_local_ecu_version_init(daemon, daemon_local, daemon_local->flags.vflag) < 0)
- {
+ if (dlt_daemon_local_ecu_version_init(daemon, daemon_local, daemon_local->flags.vflag) < 0) {
daemon->ECUVersionString = malloc(DLT_DAEMON_TEXTBUFSIZE);
- if(daemon->ECUVersionString==0)
- {
- dlt_log(LOG_WARNING,"Could not allocate memory for version string\n");
+
+ if (daemon->ECUVersionString == 0) {
+ dlt_log(LOG_WARNING, "Could not allocate memory for version string\n");
return -1;
}
- dlt_get_version(daemon->ECUVersionString,DLT_DAEMON_TEXTBUFSIZE);
+
+ dlt_get_version(daemon->ECUVersionString, DLT_DAEMON_TEXTBUFSIZE);
}
return 0;
@@ -989,13 +963,12 @@ static int dlt_daemon_init_serial(DltDaemonLocal *daemon_local)
/* open serial connection */
int fd = -1;
- if (daemon_local->flags.yvalue[0] == '\0') {
+ if (daemon_local->flags.yvalue[0] == '\0')
return 0;
- }
fd = open(daemon_local->flags.yvalue, O_RDWR);
- if (fd < 0)
- {
+
+ if (fd < 0) {
snprintf(str,
DLT_DAEMON_TEXTBUFSIZE,
"Failed to open serial device %s\n",
@@ -1006,19 +979,15 @@ static int dlt_daemon_init_serial(DltDaemonLocal *daemon_local)
return -1;
}
- if (isatty(fd))
- {
+ if (isatty(fd)) {
int speed = DLT_DAEMON_SERIAL_DEFAULT_BAUDRATE;
if (daemon_local->flags.bvalue[0])
- {
speed = atoi(daemon_local->flags.bvalue);
- }
daemon_local->baudrate = dlt_convert_serial_speed(speed);
- if (dlt_setup_serial(fd, daemon_local->baudrate) < 0)
- {
+ if (dlt_setup_serial(fd, daemon_local->baudrate) < 0) {
close(fd);
daemon_local->flags.yvalue[0] = 0;
@@ -1033,12 +1002,9 @@ static int dlt_daemon_init_serial(DltDaemonLocal *daemon_local)
}
if (daemon_local->flags.vflag)
- {
dlt_log(LOG_DEBUG, "Serial init done\n");
- }
}
- else
- {
+ else {
close(fd);
fprintf(stderr,
"Device is not a serial device, device = %s (%s) \n",
@@ -1070,9 +1036,9 @@ static int dlt_daemon_init_fifo(DltDaemonLocal *daemon_local)
const char *tmpFifo = daemon_local->flags.daemonFifoName;
unlink(tmpFifo);
- ret=mkfifo(tmpFifo, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP );
- if (ret == -1)
- {
+ ret = mkfifo(tmpFifo, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
+
+ if (ret == -1) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"FIFO user %s cannot be created (%s)!\n",
@@ -1083,8 +1049,8 @@ static int dlt_daemon_init_fifo(DltDaemonLocal *daemon_local)
} /* if */
fd = open(tmpFifo, O_RDWR);
- if (fd == -1)
- {
+
+ if (fd == -1) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"FIFO user %s cannot be opened (%s)!\n",
@@ -1094,25 +1060,21 @@ static int dlt_daemon_init_fifo(DltDaemonLocal *daemon_local)
return -1;
} /* if */
- if (daemon_local->daemonFifoSize != 0)
- {
+ if (daemon_local->daemonFifoSize != 0) {
/* Set Daemon FIFO size */
- if (fcntl(fd, F_SETPIPE_SZ , daemon_local->daemonFifoSize) == -1)
- {
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE,"set FIFO size error: %s\n",strerror(errno));
+ if (fcntl(fd, F_SETPIPE_SZ, daemon_local->daemonFifoSize) == -1) {
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE, "set FIFO size error: %s\n", strerror(errno));
dlt_log(LOG_ERR, str);
}
}
/* Get Daemon FIFO size */
- if ((fifo_size = fcntl(fd, F_GETPIPE_SZ , 0)) == -1)
- {
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE,"get FIFO size error: %s\n",strerror(errno));
+ if ((fifo_size = fcntl(fd, F_GETPIPE_SZ, 0)) == -1) {
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE, "get FIFO size error: %s\n", strerror(errno));
dlt_log(LOG_ERR, str);
}
- else
- {
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE,"FIFO size: %d\n",fifo_size);
+ else {
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE, "FIFO size: %d\n", fifo_size);
dlt_log(LOG_INFO, str);
}
@@ -1138,8 +1100,7 @@ int dlt_daemon_local_connection_init(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL)) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"%s: Invalid function parameters\n",
@@ -1153,51 +1114,49 @@ int dlt_daemon_local_connection_init(DltDaemon *daemon,
/* create and open socket to receive incoming connections from user application
* socket access permission set to srw-rw-rw- (666) */
mask = S_IXUSR | S_IXGRP | S_IXOTH;
+
if (dlt_daemon_unix_socket_open(&fd,
daemon_local->flags.appSockPath,
SOCK_STREAM,
- mask) == DLT_RETURN_OK)
- {
+ mask) == DLT_RETURN_OK) {
if (dlt_connection_create(daemon_local,
&daemon_local->pEvent,
fd,
POLLIN,
- DLT_CONNECTION_APP_CONNECT))
- {
+ DLT_CONNECTION_APP_CONNECT)) {
dlt_log(LOG_CRIT, "Could not initialize app socket.\n");
return DLT_RETURN_ERROR;
}
}
- else
- {
+ else {
dlt_log(LOG_CRIT, "Could not initialize app socket.\n");
return DLT_RETURN_ERROR;
}
+
#else
- if (dlt_daemon_init_fifo(daemon_local))
- {
+
+ if (dlt_daemon_init_fifo(daemon_local)) {
dlt_log(LOG_ERR, "Unable to initialize fifo.\n");
return DLT_RETURN_ERROR;
}
+
#endif
/* create and open socket to receive incoming connections from client */
daemon_local->client_connections = 0;
- if (dlt_daemon_socket_open(&fd, daemon_local->flags.port) == DLT_RETURN_OK)
- {
+
+ if (dlt_daemon_socket_open(&fd, daemon_local->flags.port) == DLT_RETURN_OK) {
if (dlt_connection_create(daemon_local,
&daemon_local->pEvent,
fd,
POLLIN,
- DLT_CONNECTION_CLIENT_CONNECT))
- {
- dlt_log(LOG_ERR,"Could not initialize main socket.\n");
+ DLT_CONNECTION_CLIENT_CONNECT)) {
+ dlt_log(LOG_ERR, "Could not initialize main socket.\n");
return DLT_RETURN_ERROR;
}
}
- else
- {
- dlt_log(LOG_ERR,"Could not initialize main socket.\n");
+ else {
+ dlt_log(LOG_ERR, "Could not initialize main socket.\n");
return DLT_RETURN_ERROR;
}
@@ -1205,31 +1164,28 @@ int dlt_daemon_local_connection_init(DltDaemon *daemon,
* control application
* socket access permission set to srw-rw---- (660) */
mask = S_IXUSR | S_IXGRP | S_IROTH | S_IWOTH | S_IXOTH;
+
if (dlt_daemon_unix_socket_open(&fd,
daemon_local->flags.ctrlSockPath,
SOCK_STREAM,
- mask) == DLT_RETURN_OK)
- {
+ mask) == DLT_RETURN_OK) {
if (dlt_connection_create(daemon_local,
&daemon_local->pEvent,
fd,
POLLIN,
- DLT_CONNECTION_CONTROL_CONNECT))
- {
+ DLT_CONNECTION_CONTROL_CONNECT)) {
dlt_log(LOG_ERR, "Could not initialize control socket.\n");
return DLT_RETURN_ERROR;
}
}
- else
- {
+ else {
dlt_log(LOG_ERR, "Could not initialize control socket.\n");
return DLT_RETURN_ERROR;
}
/* Init serial */
- if (dlt_daemon_init_serial(daemon_local) < 0)
- {
- dlt_log(LOG_ERR,"Could not initialize daemon data\n");
+ if (dlt_daemon_init_serial(daemon_local) < 0) {
+ dlt_log(LOG_ERR, "Could not initialize daemon data\n");
return DLT_RETURN_ERROR;
}
@@ -1238,8 +1194,8 @@ int dlt_daemon_local_connection_init(DltDaemon *daemon,
int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose)
{
- char *version = NULL;
- FILE *f = NULL;
+ char *version = NULL;
+ FILE *f = NULL;
PRINT_FUNCTION_VERBOSE(verbose);
@@ -1248,8 +1204,8 @@ int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_
/* Open the file. Bail out if error occurs */
f = fopen(daemon_local->flags.pathToECUSoftwareVersion, "r");
- if(f == NULL)
- {
+
+ if (f == NULL) {
/* Error level notice, because this might be deliberate choice */
dlt_log(LOG_NOTICE, "Failed to open ECU Software version file.\n");
return -1;
@@ -1258,8 +1214,8 @@ int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_
/* Get the file size. Bail out if stat fails. */
int fd = fileno(f);
struct stat s_buf;
- if(fstat(fd, &s_buf) < 0)
- {
+
+ if (fstat(fd, &s_buf) < 0) {
dlt_log(LOG_WARNING, "Failed to stat ECU Software version file.\n");
fclose(f);
return -1;
@@ -1268,8 +1224,8 @@ int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_
/* Bail out if file is too large. Use DLT_DAEMON_TEXTBUFSIZE max.
* Reserve one byte for trailing '\0' */
off_t size = s_buf.st_size;
- if(size >= DLT_DAEMON_TEXTBUFSIZE)
- {
+
+ if (size >= DLT_DAEMON_TEXTBUFSIZE) {
dlt_log(LOG_WARNING, "Too large file for ECU version.\n");
fclose(f);
return -1;
@@ -1277,32 +1233,34 @@ int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_
/* Allocate permanent buffer for version info */
version = malloc(size + 1);
- if(version==0)
- {
+
+ if (version == 0) {
dlt_log(LOG_WARNING, "Cannot allocate memory for ECU version.\n");
fclose(f);
return -1;
}
+
off_t offset = 0;
- while(!feof(f))
- {
+
+ while (!feof(f)) {
offset += fread(version + offset, 1, size, f);
- if(ferror(f))
- {
+
+ if (ferror(f)) {
dlt_log(LOG_WARNING, "Failed to read ECU Software version file.\n");
free(version);
fclose(f);
return -1;
}
- if(offset > size)
- {
+
+ if (offset > size) {
dlt_log(LOG_WARNING, "Too long file for ECU Software version info.\n");
free(version);
fclose(f);
return -1;
}
}
- version[offset] = '\0';//append null termination at end of version string
+
+ version[offset] = '\0';/*append null termination at end of version string */
daemon->ECUVersionString = version;
fclose(f);
return 0;
@@ -1312,8 +1270,7 @@ void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, i
{
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon==0) || (daemon_local==0))
- {
+ if ((daemon == 0) || (daemon_local == 0)) {
dlt_log(LOG_ERR, "Invalid function parameters used for function dlt_daemon_local_cleanup()\n");
return;
}
@@ -1321,14 +1278,14 @@ void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, i
/* Don't receive event anymore */
dlt_event_handler_cleanup_connections(&daemon_local->pEvent);
- dlt_message_free(&(daemon_local->msg),daemon_local->flags.vflag);
+ dlt_message_free(&(daemon_local->msg), daemon_local->flags.vflag);
/* free shared memory */
- if(daemon_local->flags.offlineTraceDirectory[0])
+ if (daemon_local->flags.offlineTraceDirectory[0])
dlt_offline_trace_free(&(daemon_local->offlineTrace));
/* Ignore result */
- dlt_file_free(&(daemon_local->file),daemon_local->flags.vflag);
+ dlt_file_free(&(daemon_local->file), daemon_local->flags.vflag);
/* Try to delete existing pipe, ignore result of unlink() */
unlink(daemon_local->flags.daemonFifoName);
@@ -1338,8 +1295,7 @@ void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, i
dlt_shm_free_server(&(daemon_local->dlt_shm));
#endif
- if (daemon_local->flags.offlineLogstorageMaxDevices > 0)
- {
+ if (daemon_local->flags.offlineLogstorageMaxDevices > 0) {
/* disconnect all logstorage devices */
dlt_daemon_logstorage_cleanup(daemon,
daemon_local,
@@ -1349,9 +1305,7 @@ void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, i
}
if (daemon->ECUVersionString != NULL)
- {
free(daemon->ECUVersionString);
- }
unlink(daemon_local->flags.ctrlSockPath);
@@ -1359,7 +1313,7 @@ void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, i
void dlt_daemon_exit_trigger()
{
- char tmp[PATH_MAX + 1] = {0};
+ char tmp[PATH_MAX + 1] = { 0 };
snprintf(tmp, PATH_MAX, "%s/dlt", dltFifoBaseDir);
(void)unlink(tmp);
@@ -1371,8 +1325,8 @@ void dlt_daemon_exit_trigger()
void dlt_daemon_signal_handler(int sig)
{
g_signo = sig;
- switch (sig)
- {
+
+ switch (sig) {
case SIGHUP:
case SIGTERM:
case SIGINT:
@@ -1390,6 +1344,7 @@ void dlt_daemon_signal_handler(int sig)
break;
}
} /* switch */
+
} /* dlt_daemon_signal_handler() */
void dlt_daemon_daemonize(int verbose)
@@ -1402,48 +1357,41 @@ void dlt_daemon_daemonize(int verbose)
dlt_log(LOG_NOTICE, "Daemon mode\n");
/* Daemonize */
- i=fork();
- if (i<0)
- {
+ i = fork();
+
+ if (i < 0) {
dlt_log(LOG_CRIT, "Unable to fork(), exiting DLT daemon\n");
exit(-1); /* fork error */
}
- if (i>0)
- {
+ if (i > 0)
exit(0); /* parent exits */
- }
+
/* child (daemon) continues */
/* Process independency */
- /* obtain a new process group */
- if (setsid()==-1)
- {
+ /* obtain a new process group */
+ if (setsid() == -1) {
dlt_log(LOG_CRIT, "setsid() failed, exiting DLT daemon\n");
exit(-1); /* fork error */
}
/* Open standard descriptors stdin, stdout, stderr */
fd = open("/dev/null", O_RDWR);
- if (fd != -1)
- {
+
+ if (fd != -1) {
/* Redirect STDOUT to /dev/null */
if (dup2(fd, STDOUT_FILENO) < 0)
- {
dlt_vlog(LOG_WARNING, "Failed to direct stdout to /dev/null. Error: %s\n", strerror(errno));
- }
/* Redirect STDERR to /dev/null */
if (dup2(fd, STDERR_FILENO) < 0)
- {
dlt_vlog(LOG_WARNING, "Failed to direct stderr to /dev/null. Error: %s\n", strerror(errno));
- }
close(fd);
}
- else
- {
+ else {
dlt_log(LOG_CRIT, "Error opening /dev/null, exiting DLT daemon\n");
exit(-1); /* fork error */
}
@@ -1453,27 +1401,25 @@ void dlt_daemon_daemonize(int verbose)
/* Change to root directory */
if (chdir("/") < 0)
- {
dlt_log(LOG_WARNING, "Failed to chdir to root\n");
- }
/* Catch signals */
- signal(SIGCHLD,SIG_IGN); /* ignore child */
- signal(SIGTSTP,SIG_IGN); /* ignore tty signals */
- signal(SIGTTOU,SIG_IGN);
- signal(SIGTTIN,SIG_IGN);
+ signal(SIGCHLD, SIG_IGN); /* ignore child */
+ signal(SIGTSTP, SIG_IGN); /* ignore tty signals */
+ signal(SIGTTOU, SIG_IGN);
+ signal(SIGTTIN, SIG_IGN);
} /* dlt_daemon_daemonize() */
/* This function logs str to the configured output sink (socket, serial, offline trace).
- To avoid recursion this function must be called only from DLT highlevel functions.
- E. g. calling it to output a failure when the open of the offline trace file fails
- would cause an endless loop because dlt_daemon_log_internal() would itself again try
- to open the offline trace file.
- This is a dlt-daemon only function. The libdlt has no equivalent function available. */
+ * To avoid recursion this function must be called only from DLT highlevel functions.
+ * E. g. calling it to output a failure when the open of the offline trace file fails
+ * would cause an endless loop because dlt_daemon_log_internal() would itself again try
+ * to open the offline trace file.
+ * This is a dlt-daemon only function. The libdlt has no equivalent function available. */
int dlt_daemon_log_internal(DltDaemon *daemon, DltDaemonLocal *daemon_local, char *str, int verbose)
{
- DltMessage msg = {0};
+ DltMessage msg = { 0 };
static uint8_t uiMsgCount = 0;
DltStandardHeaderExtra *pStandardExtra = NULL;
uint32_t uiType;
@@ -1483,41 +1429,47 @@ int dlt_daemon_log_internal(DltDaemon *daemon, DltDaemonLocal *daemon_local, cha
PRINT_FUNCTION_VERBOSE(verbose);
- // Set storageheader
+ /* Set storageheader */
msg.storageheader = (DltStorageHeader *)(msg.headerbuffer);
dlt_set_storageheader(msg.storageheader, daemon->ecuid);
- // Set standardheader
+ /* Set standardheader */
msg.standardheader = (DltStandardHeader *)(msg.headerbuffer + sizeof(DltStorageHeader));
- msg.standardheader->htyp = DLT_HTYP_UEH | DLT_HTYP_WEID | DLT_HTYP_WSID | DLT_HTYP_WTMS | DLT_HTYP_PROTOCOL_VERSION1;
+ msg.standardheader->htyp = DLT_HTYP_UEH | DLT_HTYP_WEID | DLT_HTYP_WSID | DLT_HTYP_WTMS |
+ DLT_HTYP_PROTOCOL_VERSION1;
msg.standardheader->mcnt = uiMsgCount++;
- uiExtraSize = DLT_STANDARD_HEADER_EXTRA_SIZE(msg.standardheader->htyp)+(DLT_IS_HTYP_UEH(msg.standardheader->htyp) ? sizeof(DltExtendedHeader) : 0);
+ uiExtraSize = DLT_STANDARD_HEADER_EXTRA_SIZE(msg.standardheader->htyp) +
+ (DLT_IS_HTYP_UEH(msg.standardheader->htyp) ? sizeof(DltExtendedHeader) : 0);
msg.headersize = sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + uiExtraSize;
- // Set extraheader
- pStandardExtra = (DltStandardHeaderExtra *)(msg.headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader));
+ /* Set extraheader */
+ pStandardExtra =
+ (DltStandardHeaderExtra *)(msg.headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader));
dlt_set_id(pStandardExtra->ecu, daemon->ecuid);
pStandardExtra->tmsp = DLT_HTOBE_32(dlt_uptime());
pStandardExtra->seid = DLT_HTOBE_32(getpid());
- // Set extendedheader
- msg.extendedheader = (DltExtendedHeader *)(msg.headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) + DLT_STANDARD_HEADER_EXTRA_SIZE(msg.standardheader->htyp));
- msg.extendedheader->msin = DLT_MSIN_VERB | (DLT_TYPE_LOG << DLT_MSIN_MSTP_SHIFT) | ((DLT_LOG_INFO << DLT_MSIN_MTIN_SHIFT) & DLT_MSIN_MTIN);
+ /* Set extendedheader */
+ msg.extendedheader =
+ (DltExtendedHeader *)(msg.headerbuffer + sizeof(DltStorageHeader) + sizeof(DltStandardHeader) +
+ DLT_STANDARD_HEADER_EXTRA_SIZE(msg.standardheader->htyp));
+ msg.extendedheader->msin = DLT_MSIN_VERB | (DLT_TYPE_LOG << DLT_MSIN_MSTP_SHIFT) |
+ ((DLT_LOG_INFO << DLT_MSIN_MTIN_SHIFT) & DLT_MSIN_MTIN);
msg.extendedheader->noar = 1;
dlt_set_id(msg.extendedheader->apid, "DLTD");
dlt_set_id(msg.extendedheader->ctid, "INTM");
- // Set payload data...
+ /* Set payload data... */
uiType = DLT_TYPE_INFO_STRG;
uiSize = strlen(str) + 1;
msg.datasize = sizeof(uint32_t) + sizeof(uint16_t) + uiSize;
- msg.databuffer = (uint8_t *) malloc(msg.datasize);
+ msg.databuffer = (uint8_t *)malloc(msg.datasize);
msg.databuffersize = msg.datasize;
- if (msg.databuffer==0)
- {
- dlt_log(LOG_WARNING,"Can't allocate buffer for get log info message\n");
+
+ if (msg.databuffer == 0) {
+ dlt_log(LOG_WARNING, "Can't allocate buffer for get log info message\n");
return -1;
}
@@ -1529,33 +1481,30 @@ int dlt_daemon_log_internal(DltDaemon *daemon, DltDaemonLocal *daemon_local, cha
memcpy((uint8_t *)(msg.databuffer + msg.datasize), str, uiSize);
msg.datasize += uiSize;
- // Calc lengths
+ /* Calc lengths */
msg.standardheader->len = DLT_HTOBE_16(msg.headersize - sizeof(DltStorageHeader) + msg.datasize);
- // Sending data...
+ /* Sending data... */
{
/* check if overflow occurred */
- if(daemon->overflow_counter)
- {
- if(dlt_daemon_send_message_overflow(daemon,daemon_local,verbose)==0)
- {
- sprintf(str,"%u messages discarded!\n",daemon->overflow_counter);
- dlt_log(LOG_WARNING, str);
- daemon->overflow_counter=0;
+ if (daemon->overflow_counter) {
+ if (dlt_daemon_send_message_overflow(daemon, daemon_local, verbose) == 0) {
+ sprintf(str, "%u messages discarded!\n", daemon->overflow_counter);
+ dlt_log(LOG_WARNING, str);
+ daemon->overflow_counter = 0;
}
}
/* look if TCP connection to client is available */
- if((daemon->mode == DLT_USER_MODE_EXTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH))
- {
-
- if((ret = dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL,daemon,daemon_local,msg.headerbuffer,sizeof(DltStorageHeader),msg.headerbuffer+sizeof(DltStorageHeader),msg.headersize-sizeof(DltStorageHeader),
- msg.databuffer,msg.datasize,verbose)))
- {
- if(ret == DLT_DAEMON_ERROR_BUFFER_FULL)
- {
+ if ((daemon->mode == DLT_USER_MODE_EXTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH)) {
+
+ if ((ret =
+ dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL, daemon, daemon_local, msg.headerbuffer,
+ sizeof(DltStorageHeader), msg.headerbuffer + sizeof(DltStorageHeader),
+ msg.headersize - sizeof(DltStorageHeader),
+ msg.databuffer, msg.datasize, verbose))) {
+ if (ret == DLT_DAEMON_ERROR_BUFFER_FULL)
daemon->overflow_counter++;
- }
}
}
}
@@ -1578,8 +1527,7 @@ int dlt_daemon_process_client_connect(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL)) {
dlt_log(LOG_ERR,
"Invalid function parameters used for function "
"dlt_daemon_process_client_connect()\n");
@@ -1588,10 +1536,10 @@ int dlt_daemon_process_client_connect(DltDaemon *daemon,
/* event from TCP server socket, new connection */
cli_size = sizeof(cli);
- if ((in_sock = accept(receiver->fd,&cli, &cli_size)) < 0)
- {
+
+ if ((in_sock = accept(receiver->fd, &cli, &cli_size)) < 0) {
dlt_vlog(LOG_ERR, "accept() for socket %d failed: %s\n", receiver->fd, strerror(errno));
- return -1 ;
+ return -1;
}
/* check if file file descriptor was already used, and make it invalid if it
@@ -1604,27 +1552,25 @@ int dlt_daemon_process_client_connect(DltDaemon *daemon,
struct timeval timeout_send;
timeout_send.tv_sec = daemon_local->timeoutOnSend;
timeout_send.tv_usec = 0;
+
if (setsockopt (in_sock,
SOL_SOCKET,
SO_SNDTIMEO,
(char *)&timeout_send,
sizeof(timeout_send)) < 0)
- {
dlt_log(LOG_WARNING, "setsockopt failed\n");
- }
if (dlt_connection_create(daemon_local,
- &daemon_local->pEvent,
- in_sock,
- POLLIN,
- DLT_CONNECTION_CLIENT_MSG_TCP))
- {
+ &daemon_local->pEvent,
+ in_sock,
+ POLLIN,
+ DLT_CONNECTION_CLIENT_MSG_TCP)) {
dlt_log(LOG_ERR, "Failed to register new client. \n");
/* TODO: Perform clean-up */
return -1;
}
- // send connection info about connected
+ /* send connection info about connected */
dlt_daemon_control_message_connection_info(in_sock,
daemon,
daemon_local,
@@ -1632,24 +1578,19 @@ int dlt_daemon_process_client_connect(DltDaemon *daemon,
"",
verbose);
- // send ecu version string
- if (daemon_local->flags.sendECUSoftwareVersion > 0)
- {
+ /* send ecu version string */
+ if (daemon_local->flags.sendECUSoftwareVersion > 0) {
if (daemon_local->flags.sendECUSoftwareVersion > 0)
- {
dlt_daemon_control_get_software_version(DLT_DAEMON_SEND_TO_ALL,
daemon,
daemon_local,
daemon_local->flags.vflag);
- }
if (daemon_local->flags.sendTimezone > 0)
- {
dlt_daemon_control_message_timezone(DLT_DAEMON_SEND_TO_ALL,
daemon,
daemon_local,
daemon_local->flags.vflag);
- }
}
snprintf(local_str,
@@ -1660,22 +1601,20 @@ int dlt_daemon_process_client_connect(DltDaemon *daemon,
dlt_log(LOG_DEBUG, local_str);
dlt_daemon_log_internal(daemon, daemon_local, local_str, daemon_local->flags.vflag);
- if (daemon_local->client_connections == 1)
- {
+ if (daemon_local->client_connections == 1) {
if (daemon_local->flags.vflag)
- {
dlt_log(LOG_DEBUG, "Send ring-buffer to client\n");
- }
+
dlt_daemon_change_state(daemon, DLT_DAEMON_STATE_SEND_BUFFER);
- if (dlt_daemon_send_ringbuffer_to_client(daemon, daemon_local, verbose)==-1)
- {
- dlt_log(LOG_WARNING,"Can't send contents of ringbuffer to clients\n");
+
+ if (dlt_daemon_send_ringbuffer_to_client(daemon, daemon_local, verbose) == -1) {
+ dlt_log(LOG_WARNING, "Can't send contents of ringbuffer to clients\n");
return -1;
}
/* send new log state to all applications */
daemon->connectionState = 1;
- dlt_daemon_user_send_all_log_state(daemon,verbose);
+ dlt_daemon_user_send_all_log_state(daemon, verbose);
}
return 0;
@@ -1686,13 +1625,12 @@ int dlt_daemon_process_client_messages(DltDaemon *daemon,
DltReceiver *receiver,
int verbose)
{
- int bytes_to_be_removed=0;
+ int bytes_to_be_removed = 0;
int must_close_socket = -1;
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL)) {
dlt_log(LOG_ERR,
"Invalid function parameters used for function "
"dlt_daemon_process_client_messages()\n");
@@ -1700,8 +1638,8 @@ int dlt_daemon_process_client_messages(DltDaemon *daemon,
}
must_close_socket = dlt_receiver_receive(receiver, DLT_RECEIVE_SOCKET);
- if (must_close_socket < 0)
- {
+
+ if (must_close_socket < 0) {
dlt_daemon_close_socket(receiver->fd,
daemon,
daemon_local,
@@ -1712,51 +1650,43 @@ int dlt_daemon_process_client_messages(DltDaemon *daemon,
/* Process all received messages */
while (dlt_message_read(&(daemon_local->msg),
- (uint8_t*)receiver->buf,
+ (uint8_t *)receiver->buf,
receiver->bytesRcvd,
daemon_local->flags.nflag,
- daemon_local->flags.vflag) == DLT_MESSAGE_ERROR_OK)
- {
+ daemon_local->flags.vflag) == DLT_MESSAGE_ERROR_OK) {
/* Check for control message */
- if (0 < receiver->fd &&
+ if ((0 < receiver->fd) &&
DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg)))
- {
dlt_daemon_client_process_control(receiver->fd,
daemon,
daemon_local,
&(daemon_local->msg),
daemon_local->flags.vflag);
- }
bytes_to_be_removed = daemon_local->msg.headersize +
- daemon_local->msg.datasize -
- sizeof(DltStorageHeader);
+ daemon_local->msg.datasize -
+ sizeof(DltStorageHeader);
+
if (daemon_local->msg.found_serialheader)
- {
bytes_to_be_removed += sizeof(dltSerialHeader);
- }
+
if (daemon_local->msg.resync_offset)
- {
bytes_to_be_removed += daemon_local->msg.resync_offset;
- }
- if (dlt_receiver_remove(receiver, bytes_to_be_removed) == -1)
- {
+ if (dlt_receiver_remove(receiver, bytes_to_be_removed) == -1) {
dlt_log(LOG_WARNING,
"Can't remove bytes from receiver for sockets\n");
return -1;
}
-
} /* while */
- if (dlt_receiver_move_to_begin(receiver) == -1)
- {
+ if (dlt_receiver_move_to_begin(receiver) == -1) {
dlt_log(LOG_WARNING,
"Can't move bytes to beginning of receiver buffer for sockets\n");
return -1;
}
- if (must_close_socket == 0) {
+ if (must_close_socket == 0)
/* FIXME: Why the hell do we need to close the socket
* on control message reception ??
*/
@@ -1764,7 +1694,6 @@ int dlt_daemon_process_client_messages(DltDaemon *daemon,
daemon,
daemon_local,
verbose);
- }
return 0;
}
@@ -1774,20 +1703,18 @@ int dlt_daemon_process_client_messages_serial(DltDaemon *daemon,
DltReceiver *receiver,
int verbose)
{
- int bytes_to_be_removed=0;
+ int bytes_to_be_removed = 0;
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL)) {
dlt_log(LOG_ERR,
"Invalid function parameters used for function "
"dlt_daemon_process_client_messages_serial()\n");
return -1;
}
- if (dlt_receiver_receive(receiver, DLT_RECEIVE_FD) <= 0)
- {
+ if (dlt_receiver_receive(receiver, DLT_RECEIVE_FD) <= 0) {
dlt_log(LOG_WARNING,
"dlt_receiver_receive_fd() for messages from serial interface "
"failed!\n");
@@ -1796,50 +1723,41 @@ int dlt_daemon_process_client_messages_serial(DltDaemon *daemon,
/* Process all received messages */
while (dlt_message_read(&(daemon_local->msg),
- (uint8_t*)receiver->buf,
+ (uint8_t *)receiver->buf,
receiver->bytesRcvd,
daemon_local->flags.mflag,
- daemon_local->flags.vflag) == DLT_MESSAGE_ERROR_OK)
- {
+ daemon_local->flags.vflag) == DLT_MESSAGE_ERROR_OK) {
/* Check for control message */
- if (DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg)))
- {
+ if (DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg))) {
if (dlt_daemon_client_process_control(receiver->fd,
daemon,
daemon_local,
&(daemon_local->msg),
daemon_local->flags.vflag)
- == -1)
- {
+ == -1) {
dlt_log(LOG_WARNING, "Can't process control messages\n");
return -1;
}
}
bytes_to_be_removed = daemon_local->msg.headersize +
- daemon_local->msg.datasize -
- sizeof(DltStorageHeader);
+ daemon_local->msg.datasize -
+ sizeof(DltStorageHeader);
if (daemon_local->msg.found_serialheader)
- {
bytes_to_be_removed += sizeof(dltSerialHeader);
- }
+
if (daemon_local->msg.resync_offset)
- {
bytes_to_be_removed += daemon_local->msg.resync_offset;
- }
- if (dlt_receiver_remove(receiver, bytes_to_be_removed) == -1)
- {
+ if (dlt_receiver_remove(receiver, bytes_to_be_removed) == -1) {
dlt_log(LOG_WARNING,
"Can't remove bytes from receiver for serial connection\n");
return -1;
}
-
} /* while */
- if (dlt_receiver_move_to_begin(receiver) == -1)
- {
+ if (dlt_receiver_move_to_begin(receiver) == -1) {
dlt_log(LOG_WARNING,
"Can't move bytes to beginning of receiver buffer for serial "
"connection\n");
@@ -1850,10 +1768,10 @@ int dlt_daemon_process_client_messages_serial(DltDaemon *daemon,
}
int dlt_daemon_process_control_connect(
- DltDaemon *daemon,
- DltDaemonLocal *daemon_local,
- DltReceiver *receiver,
- int verbose)
+ DltDaemon *daemon,
+ DltDaemonLocal *daemon_local,
+ DltReceiver *receiver,
+ int verbose)
{
socklen_t ctrl_size;
struct sockaddr_un ctrl;
@@ -1861,8 +1779,7 @@ int dlt_daemon_process_control_connect(
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL)) {
dlt_log(LOG_ERR,
"Invalid function parameters used for function "
"dlt_daemon_process_control_connect()\n");
@@ -1871,10 +1788,10 @@ int dlt_daemon_process_control_connect(
/* event from UNIX server socket, new connection */
ctrl_size = sizeof(ctrl);
- if ((in_sock = accept(receiver->fd, &ctrl, &ctrl_size)) < 0)
- {
+
+ if ((in_sock = accept(receiver->fd, &ctrl, &ctrl_size)) < 0) {
dlt_vlog(LOG_ERR, "accept() on UNIX control socket %d failed: %s\n", receiver->fd, strerror(errno));
- return -1 ;
+ return -1;
}
/* check if file file descriptor was already used, and make it invalid if it
@@ -1884,19 +1801,17 @@ int dlt_daemon_process_control_connect(
dlt_daemon_contexts_invalidate_fd(daemon, daemon->ecuid, in_sock, verbose);
if (dlt_connection_create(daemon_local,
- &daemon_local->pEvent,
- in_sock,
- POLLIN,
- DLT_CONNECTION_CONTROL_MSG))
- {
+ &daemon_local->pEvent,
+ in_sock,
+ POLLIN,
+ DLT_CONNECTION_CONTROL_MSG)) {
dlt_log(LOG_ERR, "Failed to register new client. \n");
/* TODO: Perform clean-up */
return -1;
}
- if (verbose)
- {
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE,
+ if (verbose) {
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE,
"New connection to control client established\n");
dlt_log(LOG_INFO, str);
}
@@ -1906,10 +1821,10 @@ int dlt_daemon_process_control_connect(
#ifdef DLT_USE_UNIX_SOCKET_IPC
int dlt_daemon_process_app_connect(
- DltDaemon *daemon,
- DltDaemonLocal *daemon_local,
- DltReceiver *receiver,
- int verbose)
+ DltDaemon *daemon,
+ DltDaemonLocal *daemon_local,
+ DltReceiver *receiver,
+ int verbose)
{
socklen_t app_size;
struct sockaddr_un app;
@@ -1917,41 +1832,38 @@ int dlt_daemon_process_app_connect(
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL)) {
dlt_vlog(LOG_ERR,
- "%s: Invalid parameters\n",
- __func__);
+ "%s: Invalid parameters\n",
+ __func__);
return DLT_RETURN_WRONG_PARAMETER;
}
/* event from UNIX server socket, new connection */
app_size = sizeof(app);
- if ((in_sock = accept(receiver->fd, &app, &app_size)) < 0)
- {
+
+ if ((in_sock = accept(receiver->fd, &app, &app_size)) < 0) {
dlt_vlog(LOG_ERR, "accept() on UNIX socket %d failed: %s\n", receiver->fd, strerror(errno));
- return -1 ;
+ return -1;
}
/* check if file file descriptor was already used, and make it invalid if it
* is reused. This prevents sending messages to wrong file descriptor */
dlt_daemon_applications_invalidate_fd(daemon, daemon->ecuid, in_sock, verbose);
- dlt_daemon_contexts_invalidate_fd(daemon,daemon->ecuid, in_sock, verbose);
+ dlt_daemon_contexts_invalidate_fd(daemon, daemon->ecuid, in_sock, verbose);
if (dlt_connection_create(daemon_local,
- &daemon_local->pEvent,
- in_sock,
- POLLIN,
- DLT_CONNECTION_APP_MSG))
- {
+ &daemon_local->pEvent,
+ in_sock,
+ POLLIN,
+ DLT_CONNECTION_APP_MSG)) {
dlt_log(LOG_ERR, "Failed to register new application. \n");
close(in_sock);
return -1;
}
- if (verbose)
- {
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE,
+ if (verbose) {
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE,
"New connection to application established\n");
dlt_log(LOG_INFO, str);
}
@@ -1961,25 +1873,23 @@ int dlt_daemon_process_app_connect(
#endif
int dlt_daemon_process_control_messages(
- DltDaemon *daemon,
- DltDaemonLocal *daemon_local,
- DltReceiver *receiver,
- int verbose)
+ DltDaemon *daemon,
+ DltDaemonLocal *daemon_local,
+ DltReceiver *receiver,
+ int verbose)
{
- int bytes_to_be_removed=0;
+ int bytes_to_be_removed = 0;
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL)) {
dlt_log(LOG_ERR,
"Invalid function parameters used for function "
"dlt_daemon_process_control_messages()\n");
return -1;
}
- if (dlt_receiver_receive(receiver, DLT_RECEIVE_SOCKET) <= 0)
- {
+ if (dlt_receiver_receive(receiver, DLT_RECEIVE_SOCKET) <= 0) {
dlt_daemon_close_socket(receiver->fd,
daemon,
daemon_local,
@@ -1993,47 +1903,38 @@ int dlt_daemon_process_control_messages(
/* Process all received messages */
while (dlt_message_read(
- &(daemon_local->msg),
- (uint8_t*)receiver->buf,
- receiver->bytesRcvd,
- daemon_local->flags.nflag,
- daemon_local->flags.vflag) == DLT_MESSAGE_ERROR_OK)
- {
+ &(daemon_local->msg),
+ (uint8_t *)receiver->buf,
+ receiver->bytesRcvd,
+ daemon_local->flags.nflag,
+ daemon_local->flags.vflag) == DLT_MESSAGE_ERROR_OK) {
/* Check for control message */
- if (receiver->fd > 0 &&
+ if ((receiver->fd > 0) &&
DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg)))
- {
dlt_daemon_client_process_control(receiver->fd,
- daemon,daemon_local,
+ daemon, daemon_local,
&(daemon_local->msg),
daemon_local->flags.vflag);
- }
bytes_to_be_removed = daemon_local->msg.headersize +
- daemon_local->msg.datasize -
- sizeof(DltStorageHeader);
+ daemon_local->msg.datasize -
+ sizeof(DltStorageHeader);
if (daemon_local->msg.found_serialheader)
- {
bytes_to_be_removed += sizeof(dltSerialHeader);
- }
+
if (daemon_local->msg.resync_offset)
- {
bytes_to_be_removed += daemon_local->msg.resync_offset;
- }
- if (dlt_receiver_remove(receiver, bytes_to_be_removed) == -1)
- {
+ if (dlt_receiver_remove(receiver, bytes_to_be_removed) == -1) {
dlt_log(LOG_WARNING,
"Can't remove bytes from receiver for sockets\n");
return -1;
}
-
} /* while */
- if (dlt_receiver_move_to_begin(receiver) == -1)
- {
- dlt_log(LOG_WARNING,"Can't move bytes to beginning of receiver buffer for sockets\n");
+ if (dlt_receiver_move_to_begin(receiver) == -1) {
+ dlt_log(LOG_WARNING, "Can't move bytes to beginning of receiver buffer for sockets\n");
return -1;
}
@@ -2046,7 +1947,7 @@ static int dlt_daemon_process_user_message_not_sup(DltDaemon *daemon,
int verbose)
{
char local_str[DLT_DAEMON_TEXTBUFSIZE] = { '\0' };
- DltUserHeader *userheader = (DltUserHeader*) (receiver->buf);
+ DltUserHeader *userheader = (DltUserHeader *)(receiver->buf);
(void)daemon;
(void)daemon_local;
@@ -2060,10 +1961,8 @@ static int dlt_daemon_process_user_message_not_sup(DltDaemon *daemon,
/* remove user header */
if (dlt_receiver_remove(receiver, sizeof(DltUserHeader)) == -1)
- {
dlt_log(LOG_WARNING,
"Can't remove bytes from receiver for user messages\n");
- }
return -1;
}
@@ -2104,8 +2003,7 @@ int dlt_daemon_process_user_messages(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL)) {
dlt_log(LOG_ERR,
"Invalid function parameters used for function "
"dlt_daemon_process_user_messages()\n");
@@ -2114,8 +2012,8 @@ int dlt_daemon_process_user_messages(DltDaemon *daemon,
#ifdef DLT_USE_UNIX_SOCKET_IPC
recv = dlt_receiver_receive(receiver, DLT_RECEIVE_SOCKET);
- if (recv <= 0)
- {
+
+ if (recv <= 0) {
dlt_daemon_close_socket(receiver->fd,
daemon,
daemon_local,
@@ -2123,66 +2021,54 @@ int dlt_daemon_process_user_messages(DltDaemon *daemon,
receiver->fd = -1;
return 0;
}
+
#else
recv = dlt_receiver_receive(receiver, DLT_RECEIVE_FD);
- if (recv < 0)
- {
+
+ if (recv < 0) {
dlt_log(LOG_WARNING,
"dlt_receiver_receive_fd() for user messages failed!\n");
return -1;
}
+
#endif
/* look through buffer as long as data is in there */
- while ((receiver->bytesRcvd >= min_size) && run_loop)
- {
+ while ((receiver->bytesRcvd >= min_size) && run_loop) {
dlt_daemon_process_user_message_func func = NULL;
offset = 0;
userheader = (DltUserHeader *)(receiver->buf + offset);
while (!dlt_user_check_userheader(userheader) &&
- (offset + min_size <= receiver->bytesRcvd))
- /* resync if necessary */
- {
+ (offset + min_size <= receiver->bytesRcvd)) {
+ /* resync if necessary */
offset++;
userheader = (DltUserHeader *)(receiver->buf + offset);
}
/* Check for user header pattern */
if (!dlt_user_check_userheader(userheader))
- {
break;
- }
/* Set new start offset */
if (offset > 0)
- {
dlt_receiver_remove(receiver, offset);
- }
-
if (userheader->message >= DLT_USER_MESSAGE_NOT_SUPPORTED)
- {
func = dlt_daemon_process_user_message_not_sup;
- }
else
- {
func = process_user_func[userheader->message];
- }
if (func(daemon,
daemon_local,
receiver,
daemon_local->flags.vflag) == -1)
- {
run_loop = 0;
- }
}
/* keep not read data in buffer */
- if (dlt_receiver_move_to_begin(receiver) == -1)
- {
+ if (dlt_receiver_move_to_begin(receiver) == -1) {
dlt_log(LOG_WARNING,
"Can't move bytes to beginning of receiver buffer for user "
"messages\n");
@@ -2203,8 +2089,7 @@ int dlt_daemon_process_user_message_overflow(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Invalid function parameters used for %s\n",
@@ -2218,24 +2103,20 @@ int dlt_daemon_process_user_message_overflow(DltDaemon *daemon,
&userpayload,
len,
DLT_RCV_SKIP_HEADER | DLT_RCV_REMOVE) < 0)
- {
/* Not enough bytes received */
return -1;
- }
/* Store in daemon, that a message buffer overflow has occured */
/* look if TCP connection to client is available or it least message can be put into buffer */
- if(dlt_daemon_control_message_buffer_overflow(DLT_DAEMON_SEND_TO_ALL,
- daemon,
- daemon_local,
- userpayload.overflow_counter,
- userpayload.apid,
- verbose))
- {
+ if (dlt_daemon_control_message_buffer_overflow(DLT_DAEMON_SEND_TO_ALL,
+ daemon,
+ daemon_local,
+ userpayload.overflow_counter,
+ userpayload.apid,
+ verbose))
/* there was an error when storing message */
/* add the counter of lost messages to the daemon counter */
daemon->overflow_counter += userpayload.overflow_counter;
- }
return 0;
}
@@ -2245,17 +2126,17 @@ int dlt_daemon_send_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_l
int ret;
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon==0) || (daemon_local==0))
- {
+ if ((daemon == 0) || (daemon_local == 0)) {
dlt_log(LOG_ERR, "Invalid function parameters used for function dlt_daemon_process_user_message_overflow()\n");
return DLT_DAEMON_ERROR_UNKNOWN;
}
/* Store in daemon, that a message buffer overflow has occured */
- if((ret=dlt_daemon_control_message_buffer_overflow(DLT_DAEMON_SEND_TO_ALL, daemon,daemon_local,daemon->overflow_counter,"", verbose)))
- {
+ if ((ret =
+ dlt_daemon_control_message_buffer_overflow(DLT_DAEMON_SEND_TO_ALL, daemon, daemon_local,
+ daemon->overflow_counter,
+ "", verbose)))
return ret;
- }
return DLT_DAEMON_ERROR_OK;
}
@@ -2277,8 +2158,7 @@ int dlt_daemon_process_user_message_register_application(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Invalid function parameters used for %s\n",
@@ -2296,15 +2176,14 @@ int dlt_daemon_process_user_message_register_application(DltDaemon *daemon,
&userapp,
len,
DLT_RCV_SKIP_HEADER);
+
if (to_remove < 0)
- {
/* Not enough bytes received */
return -1;
- }
len = userapp.description_length;
- if (len > DLT_DAEMON_DESCSIZE)
- {
+
+ if (len > DLT_DAEMON_DESCSIZE) {
len = DLT_DAEMON_DESCSIZE;
dlt_log(LOG_WARNING, "Application description exceeds limit\n");
}
@@ -2312,8 +2191,7 @@ int dlt_daemon_process_user_message_register_application(DltDaemon *daemon,
/* adjust buffer pointer */
rec->buf += to_remove + sizeof(DltUserHeader);
- if (dlt_receiver_check_and_get(rec, description, len, DLT_RCV_NONE) < 0)
- {
+ if (dlt_receiver_check_and_get(rec, description, len, DLT_RCV_NONE) < 0) {
dlt_log(LOG_ERR, "Unable to get application description\n");
/* in case description was not readable, set dummy description */
strncpy(description, "Unknown", sizeof("Unknown"));
@@ -2329,17 +2207,16 @@ int dlt_daemon_process_user_message_register_application(DltDaemon *daemon,
rec->buf = origin;
/* We can now remove data. */
- if (dlt_receiver_remove(rec, to_remove) != DLT_RETURN_OK)
- {
- dlt_log(LOG_WARNING,"Can't remove bytes from receiver\n");
+ if (dlt_receiver_remove(rec, to_remove) != DLT_RETURN_OK) {
+ dlt_log(LOG_WARNING, "Can't remove bytes from receiver\n");
return -1;
}
old_application = dlt_daemon_application_find(daemon, userapp.apid, daemon->ecuid, verbose);
+
if (old_application != NULL)
- {
old_pid = old_application->pid;
- }
+
application = dlt_daemon_application_add(daemon,
userapp.apid,
userapp.pid,
@@ -2351,32 +2228,27 @@ int dlt_daemon_process_user_message_register_application(DltDaemon *daemon,
/* send log state to new application */
dlt_daemon_user_send_log_state(daemon, application, verbose);
- if (application == NULL)
- {
+ if (application == NULL) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Can't add ApplicationID '%.4s' for PID %d\n",
userapp.apid,
userapp.pid);
- dlt_log(LOG_WARNING,local_str);
+ dlt_log(LOG_WARNING, local_str);
return -1;
}
- else
- {
- if (old_pid != application->pid)
- {
- snprintf(local_str,
- DLT_DAEMON_TEXTBUFSIZE,
- "ApplicationID '%.4s' registered for PID %d, Description=%s\n",
- application->apid,
- application->pid,
- application->application_description);
- dlt_daemon_log_internal(daemon,
- daemon_local,
- local_str,
- daemon_local->flags.vflag);
- dlt_log(LOG_DEBUG, local_str);
- }
+ else if (old_pid != application->pid) {
+ snprintf(local_str,
+ DLT_DAEMON_TEXTBUFSIZE,
+ "ApplicationID '%.4s' registered for PID %d, Description=%s\n",
+ application->apid,
+ application->pid,
+ application->application_description);
+ dlt_daemon_log_internal(daemon,
+ daemon_local,
+ local_str,
+ daemon_local->flags.vflag);
+ dlt_log(LOG_DEBUG, local_str);
}
return 0;
@@ -2401,8 +2273,7 @@ int dlt_daemon_process_user_message_register_context(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Invalid function parameters used for %s\n",
@@ -2421,15 +2292,12 @@ int dlt_daemon_process_user_message_register_context(DltDaemon *daemon,
DLT_RCV_SKIP_HEADER);
if (to_remove < 0)
- {
/* Not enough bytes received */
return -1;
- }
len = userctxt.description_length;
- if (len > DLT_DAEMON_DESCSIZE)
- {
+ if (len > DLT_DAEMON_DESCSIZE) {
dlt_vlog(LOG_WARNING, "Context description exceeds limit: %d\n", len);
len = DLT_DAEMON_DESCSIZE;
}
@@ -2437,8 +2305,7 @@ int dlt_daemon_process_user_message_register_context(DltDaemon *daemon,
/* adjust buffer pointer */
rec->buf += to_remove + sizeof(DltUserHeader);
- if (dlt_receiver_check_and_get(rec, description, len, DLT_RCV_NONE) < 0)
- {
+ if (dlt_receiver_check_and_get(rec, description, len, DLT_RCV_NONE) < 0) {
dlt_log(LOG_ERR, "Unable to get context description\n");
/* in case description was not readable, set dummy description */
strncpy(description, "Unknown", sizeof("Unknown"));
@@ -2454,9 +2321,8 @@ int dlt_daemon_process_user_message_register_context(DltDaemon *daemon,
rec->buf = origin;
/* We can now remove data. */
- if (dlt_receiver_remove(rec, to_remove) != DLT_RETURN_OK)
- {
- dlt_log(LOG_WARNING,"Can't remove bytes from receiver\n");
+ if (dlt_receiver_remove(rec, to_remove) != DLT_RETURN_OK) {
+ dlt_log(LOG_WARNING, "Can't remove bytes from receiver\n");
return -1;
}
@@ -2465,8 +2331,7 @@ int dlt_daemon_process_user_message_register_context(DltDaemon *daemon,
daemon->ecuid,
verbose);
- if (application == 0)
- {
+ if (application == 0) {
dlt_vlog(LOG_WARNING,
"ApID '%.4s' not found for new ContextID '%.4s' in %s\n",
userctxt.apid,
@@ -2477,34 +2342,24 @@ int dlt_daemon_process_user_message_register_context(DltDaemon *daemon,
}
/* Set log level */
- if (userctxt.log_level == DLT_USER_LOG_LEVEL_NOT_SET)
- {
+ if (userctxt.log_level == DLT_USER_LOG_LEVEL_NOT_SET) {
userctxt.log_level = DLT_LOG_DEFAULT;
}
else
- {
- /* Plausibility check */
- if ((userctxt.log_level < DLT_LOG_DEFAULT) ||
- (userctxt.log_level > DLT_LOG_VERBOSE))
- {
- return -1;
- }
- }
+ /* Plausibility check */
+ if ((userctxt.log_level < DLT_LOG_DEFAULT) ||
+ (userctxt.log_level > DLT_LOG_VERBOSE))
+ return -1;
/* Set trace status */
- if (userctxt.trace_status == DLT_USER_TRACE_STATUS_NOT_SET)
- {
+ if (userctxt.trace_status == DLT_USER_TRACE_STATUS_NOT_SET) {
userctxt.trace_status = DLT_TRACE_STATUS_DEFAULT;
}
else
- {
- /* Plausibility check */
- if ((userctxt.trace_status < DLT_TRACE_STATUS_DEFAULT) ||
- (userctxt.trace_status > DLT_TRACE_STATUS_ON))
- {
- return -1;
- }
- }
+ /* Plausibility check */
+ if ((userctxt.trace_status < DLT_TRACE_STATUS_DEFAULT) ||
+ (userctxt.trace_status > DLT_TRACE_STATUS_ON))
+ return -1;
context = dlt_daemon_context_add(daemon,
userctxt.apid,
@@ -2517,8 +2372,7 @@ int dlt_daemon_process_user_message_register_context(DltDaemon *daemon,
daemon->ecuid,
verbose);
- if (context==0)
- {
+ if (context == 0) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Can't add ContextID '%.4s' for ApID '%.4s'\n in %s",
@@ -2528,80 +2382,72 @@ int dlt_daemon_process_user_message_register_context(DltDaemon *daemon,
dlt_log(LOG_WARNING, local_str);
return -1;
}
- else
- {
+ else {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"ContextID '%.4s' registered for ApID '%.4s', Description=%s\n",
context->ctid,
context->apid,
context->context_description);
+
if (verbose)
- {
dlt_daemon_log_internal(daemon, daemon_local, local_str, verbose);
- }
+
dlt_log(LOG_DEBUG, local_str);
}
- if(daemon_local->flags.offlineLogstorageMaxDevices)
- {
+ if (daemon_local->flags.offlineLogstorageMaxDevices)
/* Store log level set for offline logstorage into context structure*/
context->storage_log_level =
dlt_daemon_logstorage_get_loglevel(daemon,
daemon_local->flags.offlineLogstorageMaxDevices,
userctxt.apid,
userctxt.ctid);
- }
else
- {
context->storage_log_level = DLT_LOG_DEFAULT;
- }
+
/* Create automatic get log info response for registered context */
- if (daemon_local->flags.rflag)
- {
+ if (daemon_local->flags.rflag) {
/* Prepare request for get log info with one application and one context */
- if (dlt_message_init(&msg, verbose)==-1)
- {
- dlt_log(LOG_WARNING,"Can't initialize message");
+ if (dlt_message_init(&msg, verbose) == -1) {
+ dlt_log(LOG_WARNING, "Can't initialize message");
return -1;
}
msg.datasize = sizeof(DltServiceGetLogInfoRequest);
- if (msg.databuffer && (msg.databuffersize < msg.datasize))
- {
+
+ if (msg.databuffer && (msg.databuffersize < msg.datasize)) {
free(msg.databuffer);
- msg.databuffer=0;
+ msg.databuffer = 0;
}
- if (msg.databuffer == 0){
- msg.databuffer = (uint8_t *) malloc(msg.datasize);
+
+ if (msg.databuffer == 0) {
+ msg.databuffer = (uint8_t *)malloc(msg.datasize);
msg.databuffersize = msg.datasize;
}
- if (msg.databuffer==0)
- {
- dlt_log(LOG_WARNING,"Can't allocate buffer for get log info message\n");
+
+ if (msg.databuffer == 0) {
+ dlt_log(LOG_WARNING, "Can't allocate buffer for get log info message\n");
return -1;
}
- req = (DltServiceGetLogInfoRequest*) msg.databuffer;
+ req = (DltServiceGetLogInfoRequest *)msg.databuffer;
req->service_id = DLT_SERVICE_ID_GET_LOG_INFO;
req->options = daemon_local->flags.autoResponseGetLogInfoOption;
dlt_set_id(req->apid, userctxt.apid);
dlt_set_id(req->ctid, userctxt.ctid);
- dlt_set_id(req->com,"remo");
+ dlt_set_id(req->com, "remo");
- dlt_daemon_control_get_log_info(DLT_DAEMON_SEND_TO_ALL , daemon,daemon_local, &msg, verbose);
+ dlt_daemon_control_get_log_info(DLT_DAEMON_SEND_TO_ALL, daemon, daemon_local, &msg, verbose);
dlt_message_free(&msg, verbose);
}
- if (context->user_handle >= DLT_FD_MINIMUM)
- {
- if ((userctxt.log_level == DLT_LOG_DEFAULT) || (userctxt.trace_status == DLT_TRACE_STATUS_DEFAULT))
- {
+ if (context->user_handle >= DLT_FD_MINIMUM) {
+ if ((userctxt.log_level == DLT_LOG_DEFAULT) || (userctxt.trace_status == DLT_TRACE_STATUS_DEFAULT)) {
/* This call also replaces the default values with the values defined for default */
- if (dlt_daemon_user_send_log_level(daemon, context, verbose)==-1)
- {
+ if (dlt_daemon_user_send_log_level(daemon, context, verbose) == -1) {
dlt_vlog(LOG_WARNING, "Can't send current log level as response to %s for (%.4s;%.4s)\n",
__func__,
context->apid,
@@ -2629,8 +2475,7 @@ int dlt_daemon_process_user_message_unregister_application(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
dlt_vlog(LOG_ERR,
"Invalid function parameters used for %s\n",
__func__);
@@ -2641,19 +2486,15 @@ int dlt_daemon_process_user_message_unregister_application(DltDaemon *daemon,
&userapp,
len,
DLT_RCV_SKIP_HEADER | DLT_RCV_REMOVE) < 0)
- {
/* Not enough bytes received */
return -1;
- }
user_list = dlt_daemon_find_users_list(daemon, daemon->ecuid, verbose);
+
if (user_list == NULL)
- {
return -1;
- }
- if (user_list->num_applications > 0)
- {
+ if (user_list->num_applications > 0) {
/* Delete this application and all corresponding contexts
* for this application from internal table.
*/
@@ -2662,26 +2503,22 @@ int dlt_daemon_process_user_message_unregister_application(DltDaemon *daemon,
daemon->ecuid,
verbose);
- if (application)
- {
+ if (application) {
/* Calculate start offset within contexts[] */
- offset_base=0;
+ offset_base = 0;
+
for (i = 0; i < (application - (user_list->applications)); i++)
- {
offset_base += user_list->applications[i].num_contexts;
- }
- for (i = (application->num_contexts) - 1; i >= 0; i--)
- {
+ for (i = (application->num_contexts) - 1; i >= 0; i--) {
context = &(user_list->contexts[offset_base + i]);
- if (context)
- {
+
+ if (context) {
/* Delete context */
if (dlt_daemon_context_del(daemon,
context,
daemon->ecuid,
- verbose) == -1)
- {
+ verbose) == -1) {
dlt_vlog(LOG_WARNING,
"Can't delete CtID '%.4s' for ApID '%.4s' in %s\n",
context->ctid,
@@ -2696,16 +2533,14 @@ int dlt_daemon_process_user_message_unregister_application(DltDaemon *daemon,
if (dlt_daemon_application_del(daemon,
application,
daemon->ecuid,
- verbose) == -1)
- {
+ verbose) == -1) {
dlt_vlog(LOG_WARNING,
"Can't delete ApID '%.4s' in %s\n",
application->apid,
__func__);
return -1;
}
- else
- {
+ else {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Unregistered ApID '%.4s'\n",
@@ -2734,8 +2569,7 @@ int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
dlt_vlog(LOG_ERR,
"Invalid function parameters used for %s\n",
__func__);
@@ -2747,10 +2581,8 @@ int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon,
&userctxt,
len,
DLT_RCV_SKIP_HEADER | DLT_RCV_REMOVE) < 0)
- {
/* Not enough bytes received */
return -1;
- }
context = dlt_daemon_context_find(daemon,
userctxt.apid,
@@ -2758,11 +2590,9 @@ int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon,
daemon->ecuid,
verbose);
- if (context)
- {
+ if (context) {
/* Delete this connection entry from internal table*/
- if (dlt_daemon_context_del(daemon, context, daemon->ecuid, verbose) == -1)
- {
+ if (dlt_daemon_context_del(daemon, context, daemon->ecuid, verbose) == -1) {
dlt_vlog(LOG_WARNING,
"Can't delete CtID '%.4s' for ApID '%.4s' in %s\n",
userctxt.ctid,
@@ -2770,27 +2600,25 @@ int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon,
__func__);
return -1;
}
- else
- {
+ else {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Unregistered CtID '%.4s' for ApID '%.4s'\n",
userctxt.ctid,
userctxt.apid);
+
if (verbose)
- {
dlt_daemon_log_internal(daemon,
daemon_local,
local_str,
verbose);
- }
+
dlt_log(LOG_DEBUG, local_str);
}
}
/* Create automatic unregister context response for unregistered context */
if (daemon_local->flags.rflag)
- {
dlt_daemon_control_message_unregister_context(DLT_DAEMON_SEND_TO_ALL,
daemon,
daemon_local,
@@ -2798,7 +2626,6 @@ int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon,
userctxt.ctid,
"remo",
verbose);
- }
return 0;
}
@@ -2815,42 +2642,39 @@ int dlt_daemon_process_user_message_log(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
dlt_log(LOG_ERR, "Invalid function parameters used for function dlt_daemon_process_user_message_log()\n");
return DLT_DAEMON_ERROR_UNKNOWN;
}
ret = dlt_message_read(&(daemon_local->msg),
- (unsigned char*)rec->buf + sizeof(DltUserHeader),
+ (unsigned char *)rec->buf + sizeof(DltUserHeader),
rec->bytesRcvd - sizeof(DltUserHeader),
0,
verbose);
- if(ret!=DLT_MESSAGE_ERROR_OK)
- {
- if(ret!=DLT_MESSAGE_ERROR_SIZE)
- {
+
+ if (ret != DLT_MESSAGE_ERROR_OK) {
+ if (ret != DLT_MESSAGE_ERROR_SIZE)
/* This is a normal usecase: The daemon reads the data in 10kb chunks.
- Thus the last trace in this chunk is probably not complete and will be completed
- with the next chunk read. This happens always when the FIFO is filled with more than 10kb before
- the daemon is able to read from the FIFO.
- Thus the loglevel of this message is set to DEBUG.
- A cleaner solution would be to check more in detail whether the message is not complete (normal usecase)
- or the headers are corrupted (error case). */
- dlt_log(LOG_DEBUG,"Can't read messages from receiver\n");
- }
+ * Thus the last trace in this chunk is probably not complete and will be completed
+ * with the next chunk read. This happens always when the FIFO is filled with more than 10kb before
+ * the daemon is able to read from the FIFO.
+ * Thus the loglevel of this message is set to DEBUG.
+ * A cleaner solution would be to check more in detail whether the message is not complete (normal usecase)
+ * or the headers are corrupted (error case). */
+ dlt_log(LOG_DEBUG, "Can't read messages from receiver\n");
+
return DLT_DAEMON_ERROR_UNKNOWN;
}
/* set overwrite ecu id */
- if ((daemon_local->flags.evalue[0]) && (strncmp(daemon_local->msg.headerextra.ecu,DLT_DAEMON_ECU_ID,4)==0))
- {
+ if ((daemon_local->flags.evalue[0]) && (strncmp(daemon_local->msg.headerextra.ecu, DLT_DAEMON_ECU_ID, 4) == 0)) {
/* Set header extra parameters */
- dlt_set_id(daemon_local->msg.headerextra.ecu, daemon->ecuid );
- //msg.headerextra.seid = 0;
- if (dlt_message_set_extraparameters(&(daemon_local->msg),0) == DLT_RETURN_ERROR)
- {
- dlt_log(LOG_WARNING,"Can't set message extra parameters in process user message log\n");
+ dlt_set_id(daemon_local->msg.headerextra.ecu, daemon->ecuid);
+
+ /*msg.headerextra.seid = 0; */
+ if (dlt_message_set_extraparameters(&(daemon_local->msg), 0) == DLT_RETURN_ERROR) {
+ dlt_log(LOG_WARNING, "Can't set message extra parameters in process user message log\n");
return DLT_DAEMON_ERROR_UNKNOWN;
}
@@ -2859,81 +2683,67 @@ int dlt_daemon_process_user_message_log(DltDaemon *daemon,
}
/* prepare storage header */
- if (DLT_IS_HTYP_WEID(daemon_local->msg.standardheader->htyp))
- {
- if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon_local->msg.headerextra.ecu) == DLT_RETURN_ERROR)
- {
- dlt_log(LOG_WARNING,"Can't set storage header in process user message log\n");
+ if (DLT_IS_HTYP_WEID(daemon_local->msg.standardheader->htyp)) {
+ if (dlt_set_storageheader(daemon_local->msg.storageheader,
+ daemon_local->msg.headerextra.ecu) == DLT_RETURN_ERROR) {
+ dlt_log(LOG_WARNING, "Can't set storage header in process user message log\n");
return DLT_DAEMON_ERROR_UNKNOWN;
}
}
- else
- {
- if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon->ecuid) == DLT_RETURN_ERROR)
- {
- dlt_log(LOG_WARNING,"Can't set storage header in process user message log\n");
- return DLT_DAEMON_ERROR_UNKNOWN;
- }
+ else if (dlt_set_storageheader(daemon_local->msg.storageheader, daemon->ecuid) == DLT_RETURN_ERROR) {
+ dlt_log(LOG_WARNING, "Can't set storage header in process user message log\n");
+ return DLT_DAEMON_ERROR_UNKNOWN;
}
{
/* if no filter set or filter is matching display message */
- if (daemon_local->flags.xflag)
- {
- if (dlt_message_print_hex(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose) == DLT_RETURN_ERROR)
- {
- dlt_log(LOG_WARNING,"dlt_message_print_hex() failed!\n");
- }
+ if (daemon_local->flags.xflag) {
+ if (dlt_message_print_hex(&(daemon_local->msg), text, DLT_DAEMON_TEXTSIZE, verbose) == DLT_RETURN_ERROR)
+ dlt_log(LOG_WARNING, "dlt_message_print_hex() failed!\n");
} /* if */
else if (daemon_local->flags.aflag)
{
- if (dlt_message_print_ascii(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose) == DLT_RETURN_ERROR)
- {
- dlt_log(LOG_WARNING,"dlt_message_print_ascii() failed!\n");
- }
+ if (dlt_message_print_ascii(&(daemon_local->msg), text, DLT_DAEMON_TEXTSIZE, verbose) == DLT_RETURN_ERROR)
+ dlt_log(LOG_WARNING, "dlt_message_print_ascii() failed!\n");
} /* if */
else if (daemon_local->flags.sflag)
{
- if (dlt_message_print_header(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose) == DLT_RETURN_ERROR)
- {
- dlt_log(LOG_WARNING,"dlt_message_print_header() failed!\n");
- }
+ if (dlt_message_print_header(&(daemon_local->msg), text, DLT_DAEMON_TEXTSIZE, verbose) == DLT_RETURN_ERROR)
+ dlt_log(LOG_WARNING, "dlt_message_print_header() failed!\n");
+
/* print message header only */
} /* if */
-
/* check if overflow occurred */
- if(daemon->overflow_counter)
- {
- if(dlt_daemon_send_message_overflow(daemon,daemon_local,verbose)==0)
- {
- snprintf(str,DLT_DAEMON_TEXTBUFSIZE,"%u messages discarded!\n",daemon->overflow_counter);
+ if (daemon->overflow_counter) {
+ if (dlt_daemon_send_message_overflow(daemon, daemon_local, verbose) == 0) {
+ snprintf(str, DLT_DAEMON_TEXTBUFSIZE, "%u messages discarded!\n", daemon->overflow_counter);
dlt_log(LOG_WARNING, str);
- daemon->overflow_counter=0;
+ daemon->overflow_counter = 0;
}
}
/* send message to client or write to log file */
- if((ret = dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL,daemon,daemon_local,daemon_local->msg.headerbuffer,sizeof(DltStorageHeader),daemon_local->msg.headerbuffer+sizeof(DltStorageHeader),daemon_local->msg.headersize-sizeof(DltStorageHeader),
- daemon_local->msg.databuffer,daemon_local->msg.datasize,verbose)))
- {
- if(ret == DLT_DAEMON_ERROR_BUFFER_FULL)
- {
+ if ((ret =
+ dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL, daemon, daemon_local, daemon_local->msg.headerbuffer,
+ sizeof(DltStorageHeader),
+ daemon_local->msg.headerbuffer + sizeof(DltStorageHeader),
+ daemon_local->msg.headersize - sizeof(DltStorageHeader),
+ daemon_local->msg.databuffer, daemon_local->msg.datasize, verbose))) {
+ if (ret == DLT_DAEMON_ERROR_BUFFER_FULL)
daemon->overflow_counter++;
- }
}
-
}
+
/* keep not read data in buffer */
- bytes_to_be_removed = daemon_local->msg.headersize+daemon_local->msg.datasize-sizeof(DltStorageHeader)+sizeof(DltUserHeader);
+ bytes_to_be_removed = daemon_local->msg.headersize + daemon_local->msg.datasize - sizeof(DltStorageHeader) +
+ sizeof(DltUserHeader);
+
if (daemon_local->msg.found_serialheader)
- {
bytes_to_be_removed += sizeof(dltSerialHeader);
- }
- if (dlt_receiver_remove(rec, bytes_to_be_removed) == -1)
- {
- dlt_log(LOG_WARNING,"Can't remove bytes from receiver\n");
+ if (dlt_receiver_remove(rec, bytes_to_be_removed) == -1) {
+ dlt_log(LOG_WARNING, "Can't remove bytes from receiver\n");
return DLT_DAEMON_ERROR_UNKNOWN;
}
@@ -2941,14 +2751,14 @@ int dlt_daemon_process_user_message_log(DltDaemon *daemon,
}
#ifdef DLT_SHM_ENABLE
-#define DLT_SHM_RCV_BUFFER_SIZE 10000
+# define DLT_SHM_RCV_BUFFER_SIZE 10000
int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon,
DltDaemonLocal *daemon_local,
DltReceiver *rec,
int verbose)
{
char local_str[DLT_DAEMON_TEXTBUFSIZE] = { '\0' };
- int j,sent,third_value;
+ int j, sent, third_value;
ssize_t ret;
uint8_t *rcv_buffer = NULL;
int size;
@@ -2959,8 +2769,7 @@ int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Invalid function parameters used for %s\n",
@@ -2972,8 +2781,7 @@ int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon,
rcv_buffer = calloc(1, DLT_SHM_RCV_BUFFER_SIZE);
- if (!rcv_buffer)
- {
+ if (!rcv_buffer) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"No memory to allocate receiver buffer in %s.\n",
@@ -2987,110 +2795,97 @@ int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon,
memset(&userheader, 0, len);
if (dlt_receiver_check_and_get(rec, &userheader, len, DLT_RCV_REMOVE) < 0)
- {
/* Not enough bytes received */
return -1;
- }
- //dlt_shm_status(&(daemon_local->dlt_shm));
- while (1)
- {
+ /*dlt_shm_status(&(daemon_local->dlt_shm)); */
+ while (1) {
/* log message in SHM */
size = dlt_shm_copy(&(daemon_local->dlt_shm),
rcv_buffer,
DLT_SHM_RCV_BUFFER_SIZE);
- if(size <= 0)
+
+ if (size <= 0)
break;
- if (dlt_message_read(&(daemon_local->msg),rcv_buffer,size,0,verbose)!=0) {
- break;
- dlt_log(LOG_WARNING,"Can't read messages from shm\n");
- return -1;
- }
-
- /* set overwrite ecu id */
- if ((daemon_local->flags.evalue[0]) && (strncmp(daemon_local->msg.headerextra.ecu,DLT_DAEMON_ECU_ID,4)==0))
- {
- /* Set header extra parameters */
- dlt_set_id(daemon_local->msg.headerextra.ecu, daemon->ecuid );
- //msg.headerextra.seid = 0;
- if (dlt_message_set_extraparameters(&(daemon_local->msg),0)==-1)
- {
- dlt_log(LOG_WARNING,"Can't set message extra parameters in process user message log\n");
- dlt_shm_remove(&(daemon_local->dlt_shm));
- return -1;
- }
-
- /* Correct value of timestamp, this was changed by dlt_message_set_extraparameters() */
- daemon_local->msg.headerextra.tmsp = DLT_BETOH_32(daemon_local->msg.headerextra.tmsp);
- }
-
- /* prepare storage header */
- if (DLT_IS_HTYP_WEID(daemon_local->msg.standardheader->htyp))
- {
- if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon_local->msg.headerextra.ecu)==-1)
- {
- dlt_log(LOG_WARNING,"Can't set storage header in process user message log\n");
- dlt_shm_remove(&(daemon_local->dlt_shm));
- return -1;
- }
- }
- else
- {
- if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon->ecuid)==-1)
- {
- dlt_log(LOG_WARNING,"Can't set storage header in process user message log\n");
- dlt_shm_remove(&(daemon_local->dlt_shm));
- return -1;
- }
- }
-
- /* display message */
- if (daemon_local->flags.xflag)
- {
- if (dlt_message_print_hex(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
- {
- dlt_log(LOG_WARNING,"dlt_message_print_hex() failed!\n");
- }
- } /* if */
- else if (daemon_local->flags.aflag)
- {
- if (dlt_message_print_ascii(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
- {
- dlt_log(LOG_WARNING,"dlt_message_print_ascii() failed!\n");
- }
- } /* if */
- else if (daemon_local->flags.sflag)
- {
- if (dlt_message_print_header(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1)
- {
- dlt_log(LOG_WARNING,"dlt_message_print_header() failed!\n");
- }
- /* print message header only */
- } /* if */
-
- sent=0;
-
- /* write message to offline trace */
- if(daemon_local->flags.offlineTraceDirectory[0])
- {
- dlt_offline_trace_write(&(daemon_local->offlineTrace),daemon_local->msg.headerbuffer,daemon_local->msg.headersize,
- daemon_local->msg.databuffer,daemon_local->msg.datasize,0,0);
- sent = 1;
- }
+ if (dlt_message_read(&(daemon_local->msg), rcv_buffer, size, 0, verbose) != 0) {
+ break;
+ dlt_log(LOG_WARNING, "Can't read messages from shm\n");
+ return -1;
+ }
+
+ /* set overwrite ecu id */
+ if ((daemon_local->flags.evalue[0]) &&
+ (strncmp(daemon_local->msg.headerextra.ecu, DLT_DAEMON_ECU_ID, 4) == 0)) {
+ /* Set header extra parameters */
+ dlt_set_id(daemon_local->msg.headerextra.ecu, daemon->ecuid);
+
+ /*msg.headerextra.seid = 0; */
+ if (dlt_message_set_extraparameters(&(daemon_local->msg), 0) == -1) {
+ dlt_log(LOG_WARNING, "Can't set message extra parameters in process user message log\n");
+ dlt_shm_remove(&(daemon_local->dlt_shm));
+ return -1;
+ }
+
+ /* Correct value of timestamp, this was changed by dlt_message_set_extraparameters() */
+ daemon_local->msg.headerextra.tmsp = DLT_BETOH_32(daemon_local->msg.headerextra.tmsp);
+ }
+
+ /* prepare storage header */
+ if (DLT_IS_HTYP_WEID(daemon_local->msg.standardheader->htyp)) {
+ if (dlt_set_storageheader(daemon_local->msg.storageheader, daemon_local->msg.headerextra.ecu) == -1) {
+ dlt_log(LOG_WARNING, "Can't set storage header in process user message log\n");
+ dlt_shm_remove(&(daemon_local->dlt_shm));
+ return -1;
+ }
+ }
+ else if (dlt_set_storageheader(daemon_local->msg.storageheader, daemon->ecuid) == -1) {
+ dlt_log(LOG_WARNING, "Can't set storage header in process user message log\n");
+ dlt_shm_remove(&(daemon_local->dlt_shm));
+ return -1;
+ }
+
+ /* display message */
+ if (daemon_local->flags.xflag) {
+ if (dlt_message_print_hex(&(daemon_local->msg), text, DLT_DAEMON_TEXTSIZE, verbose) == -1)
+ dlt_log(LOG_WARNING, "dlt_message_print_hex() failed!\n");
+ } /* if */
+ else if (daemon_local->flags.aflag)
+ {
+ if (dlt_message_print_ascii(&(daemon_local->msg), text, DLT_DAEMON_TEXTSIZE, verbose) == -1)
+ dlt_log(LOG_WARNING, "dlt_message_print_ascii() failed!\n");
+ } /* if */
+ else if (daemon_local->flags.sflag)
+ {
+ if (dlt_message_print_header(&(daemon_local->msg), text, DLT_DAEMON_TEXTSIZE, verbose) == -1)
+ dlt_log(LOG_WARNING, "dlt_message_print_header() failed!\n");
+
+ /* print message header only */
+ } /* if */
+
+ sent = 0;
+
+ /* write message to offline trace */
+ if (daemon_local->flags.offlineTraceDirectory[0]) {
+ dlt_offline_trace_write(&(daemon_local->offlineTrace),
+ daemon_local->msg.headerbuffer,
+ daemon_local->msg.headersize,
+ daemon_local->msg.databuffer,
+ daemon_local->msg.datasize,
+ 0,
+ 0);
+ sent = 1;
+ }
sent = dlt_daemon_client_send_all(daemon, daemon_local, verbose);
/* Message was not sent to client, so store it in client ringbuffer */
- if (sent == 1)
- {
- if(userheader.message == DLT_USER_MESSAGE_LOG_SHM) {
+ if (sent == 1) {
+ if (userheader.message == DLT_USER_MESSAGE_LOG_SHM)
/* dlt message was sent, remove from buffer if log message from shm */
dlt_shm_remove(&(daemon_local->dlt_shm));
- }
}
- else
- {
+ else {
/* dlt message was not sent, keep in buffer */
break;
}
@@ -3098,7 +2893,7 @@ int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon,
return 0;
}
-#undef DLT_SHM_RCV_BUFFER_SIZE
+# undef DLT_SHM_RCV_BUFFER_SIZE
#endif
int dlt_daemon_process_user_message_set_app_ll_ts(DltDaemon *daemon,
@@ -3112,12 +2907,11 @@ int dlt_daemon_process_user_message_set_app_ll_ts(DltDaemon *daemon,
DltDaemonContext *context;
int i, offset_base;
int8_t old_log_level, old_trace_status;
- DltDaemonRegisteredUsers* user_list = NULL;
+ DltDaemonRegisteredUsers *user_list = NULL;
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
dlt_vlog(LOG_ERR,
"Invalid function parameters used for %s\n",
__func__);
@@ -3125,42 +2919,37 @@ int dlt_daemon_process_user_message_set_app_ll_ts(DltDaemon *daemon,
}
user_list = dlt_daemon_find_users_list(daemon, daemon->ecuid, verbose);
+
if (user_list == NULL)
- {
return DLT_RETURN_ERROR;
- }
memset(&userctxt, 0, len);
+
if (dlt_receiver_check_and_get(rec,
&userctxt,
len,
DLT_RCV_SKIP_HEADER | DLT_RCV_REMOVE) < 0)
- {
/* Not enough bytes received */
return DLT_RETURN_ERROR;
- }
- if (user_list->num_applications > 0)
- {
+ if (user_list->num_applications > 0) {
/* Get all contexts with application id matching the received application id */
application = dlt_daemon_application_find(daemon,
userctxt.apid,
daemon->ecuid,
verbose);
- if (application)
- {
+
+ if (application) {
/* Calculate start offset within contexts[] */
- offset_base=0;
+ offset_base = 0;
+
for (i = 0; i < (application - (user_list->applications)); i++)
- {
offset_base += user_list->applications[i].num_contexts;
- }
- for (i = 0; i < application->num_contexts; i++)
- {
+ for (i = 0; i < application->num_contexts; i++) {
context = &(user_list->contexts[offset_base + i]);
- if (context)
- {
+
+ if (context) {
old_log_level = context->log_level;
context->log_level = userctxt.log_level; /* No endianess conversion necessary*/
@@ -3171,8 +2960,7 @@ int dlt_daemon_process_user_message_set_app_ll_ts(DltDaemon *daemon,
if ((context->user_handle >= DLT_FD_MINIMUM) &&
(dlt_daemon_user_send_log_level(daemon,
context,
- verbose) != 0))
- {
+ verbose) != 0)) {
context->log_level = old_log_level;
context->trace_status = old_trace_status;
}
@@ -3194,21 +2982,19 @@ int dlt_daemon_process_user_message_log_mode(DltDaemon *daemon,
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon==0) || (daemon_local==0))
- {
+ if ((daemon == 0) || (daemon_local == 0)) {
dlt_log(LOG_ERR, "Invalid function parameters used for function dlt_daemon_process_log_mode()\n");
return -1;
}
memset(&userctxt, 0, len);
+
if (dlt_receiver_check_and_get(rec,
&userctxt,
len,
DLT_RCV_SKIP_HEADER | DLT_RCV_REMOVE) < 0)
- {
/* Not enough bytes received */
return -1;
- }
/* set the new log mode */
daemon->mode = userctxt.log_mode;
@@ -3229,8 +3015,7 @@ int dlt_daemon_process_user_message_marker(DltDaemon *daemon,
DltUserControlMsgLogMode userctxt;
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL))
- {
+ if ((daemon == NULL) || (daemon_local == NULL) || (rec == NULL)) {
snprintf(local_str,
DLT_DAEMON_TEXTBUFSIZE,
"Invalid function parameters used for %s\n",
@@ -3241,17 +3026,16 @@ int dlt_daemon_process_user_message_marker(DltDaemon *daemon,
}
memset(&userctxt, 0, len);
+
if (dlt_receiver_check_and_get(rec,
&userctxt,
len,
DLT_RCV_SKIP_HEADER | DLT_RCV_REMOVE) < 0)
- {
/* Not enough bytes received */
return -1;
- }
/* Create automatic unregister context response for unregistered context */
- dlt_daemon_control_message_marker(DLT_DAEMON_SEND_TO_ALL,daemon,daemon_local,verbose);
+ dlt_daemon_control_message_marker(DLT_DAEMON_SEND_TO_ALL, daemon, daemon_local, verbose);
return 0;
}
@@ -3267,49 +3051,48 @@ int dlt_daemon_send_ringbuffer_to_client(DltDaemon *daemon, DltDaemonLocal *daem
PRINT_FUNCTION_VERBOSE(verbose);
- if ((daemon==0) || (daemon_local==0))
- {
+ if ((daemon == 0) || (daemon_local == 0)) {
dlt_log(LOG_ERR, "Invalid function parameters used for function dlt_daemon_send_ringbuffer_to_client()\n");
return DLT_DAEMON_ERROR_UNKNOWN;
}
- if(dlt_buffer_get_message_count(&(daemon->client_ringbuffer)) <= 0)
- {
+ if (dlt_buffer_get_message_count(&(daemon->client_ringbuffer)) <= 0) {
dlt_daemon_change_state(daemon, DLT_DAEMON_STATE_SEND_DIRECT);
return DLT_DAEMON_ERROR_OK;
}
#ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
- if(sd_notify(0, "WATCHDOG=1") < 0)
- {
+
+ if (sd_notify(0, "WATCHDOG=1") < 0)
dlt_log(LOG_WARNING, "Could not reset systemd watchdog\n");
- }
+
curr_time = dlt_uptime();
#endif
- while ( (length = dlt_buffer_copy(&(daemon->client_ringbuffer), data, sizeof(data)) ) > 0)
- {
+
+ while ((length = dlt_buffer_copy(&(daemon->client_ringbuffer), data, sizeof(data))) > 0) {
#ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
- if ((dlt_uptime() - curr_time) / 10000 >= watchdog_trigger_interval)
- {
- if(sd_notify(0, "WATCHDOG=1") < 0)
- {
+
+ if ((dlt_uptime() - curr_time) / 10000 >= watchdog_trigger_interval) {
+ if (sd_notify(0, "WATCHDOG=1") < 0)
dlt_log(LOG_WARNING, "Could not reset systemd watchdog\n");
- }
+
curr_time = dlt_uptime();
}
+
#endif
- if((ret = dlt_daemon_client_send(DLT_DAEMON_SEND_FORCE,daemon,daemon_local,0,0,data,length,0,0,verbose)))
- {
+ if ((ret =
+ dlt_daemon_client_send(DLT_DAEMON_SEND_FORCE, daemon, daemon_local, 0, 0, data, length, 0, 0,
+ verbose)))
return ret;
- }
+
dlt_buffer_remove(&(daemon->client_ringbuffer));
- if(daemon->state != DLT_DAEMON_STATE_SEND_BUFFER)
- dlt_daemon_change_state(daemon,DLT_DAEMON_STATE_SEND_BUFFER);
- if(dlt_buffer_get_message_count(&(daemon->client_ringbuffer)) <= 0)
- {
- dlt_daemon_change_state(daemon,DLT_DAEMON_STATE_SEND_DIRECT);
+ if (daemon->state != DLT_DAEMON_STATE_SEND_BUFFER)
+ dlt_daemon_change_state(daemon, DLT_DAEMON_STATE_SEND_BUFFER);
+
+ if (dlt_buffer_get_message_count(&(daemon->client_ringbuffer)) <= 0) {
+ dlt_daemon_change_state(daemon, DLT_DAEMON_STATE_SEND_DIRECT);
return DLT_DAEMON_ERROR_OK;
}
}
@@ -3318,8 +3101,8 @@ int dlt_daemon_send_ringbuffer_to_client(DltDaemon *daemon, DltDaemonLocal *daem
}
static char dlt_timer_conn_types[DLT_TIMER_UNKNOWN + 1] = {
- [DLT_TIMER_PACKET] = DLT_CONNECTION_ONE_S_TIMER,
- [DLT_TIMER_ECU] = DLT_CONNECTION_SIXTY_S_TIMER,
+ [DLT_TIMER_PACKET] = DLT_CONNECTION_ONE_S_TIMER,
+ [DLT_TIMER_ECU] = DLT_CONNECTION_SIXTY_S_TIMER,
#ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
[DLT_TIMER_SYSTEMD] = DLT_CONNECTION_SYSTEMD_TIMER,
#endif
@@ -3328,8 +3111,8 @@ static char dlt_timer_conn_types[DLT_TIMER_UNKNOWN + 1] = {
};
static char dlt_timer_names[DLT_TIMER_UNKNOWN + 1][32] = {
- [DLT_TIMER_PACKET] = "Timing packet",
- [DLT_TIMER_ECU] = "ECU version",
+ [DLT_TIMER_PACKET] = "Timing packet",
+ [DLT_TIMER_ECU] = "ECU version",
#ifdef DLT_SYSTEMD_WATCHDOG_ENABLE
[DLT_TIMER_SYSTEMD] = "Systemd watchdog",
#endif
@@ -3353,17 +3136,16 @@ int create_timer_fd(DltDaemonLocal *daemon_local,
timer_name = dlt_timer_names[timer_id];
- if(daemon_local == NULL)
- {
+ if (daemon_local == NULL) {
dlt_log(DLT_LOG_ERROR, "Daemaon local structure is NULL");
return -1;
}
- if(period_sec > 0) {
+ if (period_sec > 0) {
#ifdef linux
local_fd = timerfd_create(CLOCK_MONOTONIC, 0);
- if( local_fd < 0)
- {
+
+ if (local_fd < 0) {
snprintf(str,
sizeof(str),
"<%s> timerfd_create failed: %s\n",
@@ -3377,8 +3159,7 @@ int create_timer_fd(DltDaemonLocal *daemon_local,
l_timer_spec.it_value.tv_sec = starts_in;
l_timer_spec.it_value.tv_nsec = 0;
- if( timerfd_settime(local_fd, 0, &l_timer_spec, NULL) < 0)
- {
+ if (timerfd_settime(local_fd, 0, &l_timer_spec, NULL) < 0) {
snprintf(str,
sizeof(str),
"<%s> timerfd_settime failed: %s\n",
@@ -3387,10 +3168,11 @@ int create_timer_fd(DltDaemonLocal *daemon_local,
dlt_log(LOG_WARNING, str);
local_fd = -1;
}
+
#endif
}
else {
- // timer not activated via the service file
+ /* timer not activated via the service file */
snprintf(str, sizeof(str), "<%s> not set: period=0\n", timer_name);
dlt_log(LOG_INFO, str);
local_fd = -1;
@@ -3399,8 +3181,7 @@ int create_timer_fd(DltDaemonLocal *daemon_local,
/* If fully initialized we are done.
* Event handling registration is done later on with other connections.
*/
- if(local_fd > 0)
- {
+ if (local_fd > 0) {
snprintf(str,
sizeof(str),
"<%s> initialized with %d timer\n",
@@ -3423,32 +3204,34 @@ int dlt_daemon_close_socket(int sock, DltDaemon *daemon, DltDaemonLocal *daemon_
PRINT_FUNCTION_VERBOSE(verbose);
- if((daemon_local == NULL)|| (daemon == NULL))
- {
+ if ((daemon_local == NULL) || (daemon == NULL)) {
dlt_log(LOG_ERR, "dlt_daemon_close_socket: Invalid input parmeters\n");
return -1;
}
/* Closure is done while unregistering has for any connection */
dlt_event_handler_unregister_connection(&daemon_local->pEvent,
- daemon_local,
- sock);
+ daemon_local,
+ sock);
-
- if(daemon_local->client_connections==0)
- {
+ if (daemon_local->client_connections == 0) {
/* send new log state to all applications */
daemon->connectionState = 0;
- dlt_daemon_user_send_all_log_state(daemon,verbose);
+ dlt_daemon_user_send_all_log_state(daemon, verbose);
- // For offline tracing we still can use the same states
- // as for socket sending. Using this trick we see the traces
- // In the offline trace AND in the socket stream.
- if(daemon_local->flags.yvalue[0] == 0)
- dlt_daemon_change_state(daemon,DLT_DAEMON_STATE_BUFFER);
+ /* For offline tracing we still can use the same states */
+ /* as for socket sending. Using this trick we see the traces */
+ /* In the offline trace AND in the socket stream. */
+ if (daemon_local->flags.yvalue[0] == 0)
+ dlt_daemon_change_state(daemon, DLT_DAEMON_STATE_BUFFER);
}
- dlt_daemon_control_message_connection_info(DLT_DAEMON_SEND_TO_ALL,daemon,daemon_local,DLT_CONNECTION_STATUS_DISCONNECTED,"",verbose);
+ dlt_daemon_control_message_connection_info(DLT_DAEMON_SEND_TO_ALL,
+ daemon,
+ daemon_local,
+ DLT_CONNECTION_STATUS_DISCONNECTED,
+ "",
+ verbose);
snprintf(local_str, DLT_DAEMON_TEXTBUFSIZE,
"Client connection #%d closed. Total Clients : %d\n",
@@ -3461,5 +3244,5 @@ int dlt_daemon_close_socket(int sock, DltDaemon *daemon, DltDaemonLocal *daemon_
}
/**
- \}
-*/
+ \}
+ */