summaryrefslogtreecommitdiff
path: root/src/system/dlt-system-options.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/system/dlt-system-options.c')
-rw-r--r--src/system/dlt-system-options.c693
1 files changed, 341 insertions, 352 deletions
diff --git a/src/system/dlt-system-options.c b/src/system/dlt-system-options.c
index 01f2d65..63f2e37 100644
--- a/src/system/dlt-system-options.c
+++ b/src/system/dlt-system-options.c
@@ -65,17 +65,17 @@
*/
void usage(char *prog_name)
{
- char version[255];
- dlt_get_version(version,255);
-
- printf("Usage: %s [options]\n", prog_name);
- printf("Application to forward syslog messages to DLT, transfer system information, logs and files.\n");
- printf("%s\n", version);
- printf("Options:\n");
- printf(" -d Daemonize. Detach from terminal and run in background.\n");
- printf(" -c filename Use configuration file. \n");
- printf(" Default: %s\n", DEFAULT_CONF_FILE);
- printf(" -h This help message.\n");
+ char version[255];
+ dlt_get_version(version, 255);
+
+ printf("Usage: %s [options]\n", prog_name);
+ printf("Application to forward syslog messages to DLT, transfer system information, logs and files.\n");
+ printf("%s\n", version);
+ printf("Options:\n");
+ printf(" -d Daemonize. Detach from terminal and run in background.\n");
+ printf(" -c filename Use configuration file. \n");
+ printf(" Default: %s\n", DEFAULT_CONF_FILE);
+ printf(" -h This help message.\n");
}
/**
@@ -83,8 +83,8 @@ void usage(char *prog_name)
*/
void init_cli_options(DltSystemCliOptions *options)
{
- options->ConfigurationFileName = DEFAULT_CONF_FILE;
- options->Daemonize = 0;
+ options->ConfigurationFileName = DEFAULT_CONF_FILE;
+ options->Daemonize = 0;
}
/**
@@ -92,39 +92,38 @@ void init_cli_options(DltSystemCliOptions *options)
*/
int read_command_line(DltSystemCliOptions *options, int argc, char *argv[])
{
- init_cli_options(options);
- int opt;
-
- while((opt = getopt(argc, argv, "c:hd")) != -1)
- {
- switch(opt) {
- case 'd':
- {
- options->Daemonize = 1;
- break;
- }
- case 'c':
- {
- options->ConfigurationFileName = malloc(strlen(optarg)+1);
- MALLOC_ASSERT(options->ConfigurationFileName);
- strcpy(options->ConfigurationFileName, optarg); /* strcpy unritical here, because size matches exactly the size to be copied */
- break;
- }
- case 'h':
- {
- usage(argv[0]);
- exit(0);
- return -1;//for parasoft
- }
- default:
- {
- fprintf(stderr, "Unknown option '%c'\n", optopt);
- usage(argv[0]);
- return -1;
- }
- }
- }
- return 0;
+ init_cli_options(options);
+ int opt;
+
+ while ((opt = getopt(argc, argv, "c:hd")) != -1)
+ switch (opt) {
+ case 'd':
+ {
+ options->Daemonize = 1;
+ break;
+ }
+ case 'c':
+ {
+ options->ConfigurationFileName = malloc(strlen(optarg) + 1);
+ MALLOC_ASSERT(options->ConfigurationFileName);
+ strcpy(options->ConfigurationFileName, optarg); /* strcpy unritical here, because size matches exactly the size to be copied */
+ break;
+ }
+ case 'h':
+ {
+ usage(argv[0]);
+ exit(0);
+ return -1; /*for parasoft */
+ }
+ default:
+ {
+ fprintf(stderr, "Unknown option '%c'\n", optopt);
+ usage(argv[0]);
+ return -1;
+ }
+ }
+
+ return 0;
}
/**
@@ -132,62 +131,62 @@ int read_command_line(DltSystemCliOptions *options, int argc, char *argv[])
*/
void init_configuration(DltSystemConfiguration *config)
{
- int i = 0;
-
- // Common
- config->ApplicationId = "SYS";
-
- // Shell
- config->Shell.Enable = 0;
-
- // Syslog
- config->Syslog.Enable = 0;
- config->Syslog.ContextId = "SYSL";
- config->Syslog.Port = 47111;
-
- // Journal
- config->Journal.Enable = 0;
- config->Journal.ContextId = "JOUR";
- config->Journal.CurrentBoot = 1;
- config->Journal.Follow = 0;
- config->Journal.MapLogLevels = 1;
-
- // File transfer
- config->Filetransfer.Enable = 0;
- config->Filetransfer.ContextId = "FILE";
- config->Filetransfer.TimeDelay = 10;
- config->Filetransfer.TimeStartup = 30;
- config->Filetransfer.TimeoutBetweenLogs = 10;
- config->Filetransfer.Count = 0;
- for(i = 0;i < DLT_SYSTEM_LOG_DIRS_MAX;i++)
- {
- config->Filetransfer.Directory[i] = NULL;
- config->Filetransfer.Compression[i] = 0;
- config->Filetransfer.CompressionLevel[i] = 5;
- }
-
- // Log file
- config->LogFile.Enable = 0;
- config->LogFile.Count = 0;
- for(i = 0;i < DLT_SYSTEM_LOG_FILE_MAX;i++)
- {
- config->LogFile.ContextId[i] = NULL;
- config->LogFile.Filename[i] = NULL;
- config->LogFile.Mode[i] = 0;
- config->LogFile.TimeDelay[i] = 0;
- }
-
- // Log process
- config->LogProcesses.Enable = 0;
- config->LogProcesses.ContextId = "PROC";
- config->LogProcesses.Count = 0;
- for(i = 0;i < DLT_SYSTEM_LOG_PROCESSES_MAX;i++)
- {
- config->LogProcesses.Name[i] = NULL;
- config->LogProcesses.Filename[i] = NULL;
- config->LogProcesses.Mode[i] = 0;
- config->LogProcesses.TimeDelay[i] = 0;
- }
+ int i = 0;
+
+ /* Common */
+ config->ApplicationId = "SYS";
+
+ /* Shell */
+ config->Shell.Enable = 0;
+
+ /* Syslog */
+ config->Syslog.Enable = 0;
+ config->Syslog.ContextId = "SYSL";
+ config->Syslog.Port = 47111;
+
+ /* Journal */
+ config->Journal.Enable = 0;
+ config->Journal.ContextId = "JOUR";
+ config->Journal.CurrentBoot = 1;
+ config->Journal.Follow = 0;
+ config->Journal.MapLogLevels = 1;
+
+ /* File transfer */
+ config->Filetransfer.Enable = 0;
+ config->Filetransfer.ContextId = "FILE";
+ config->Filetransfer.TimeDelay = 10;
+ config->Filetransfer.TimeStartup = 30;
+ config->Filetransfer.TimeoutBetweenLogs = 10;
+ config->Filetransfer.Count = 0;
+
+ for (i = 0; i < DLT_SYSTEM_LOG_DIRS_MAX; i++) {
+ config->Filetransfer.Directory[i] = NULL;
+ config->Filetransfer.Compression[i] = 0;
+ config->Filetransfer.CompressionLevel[i] = 5;
+ }
+
+ /* Log file */
+ config->LogFile.Enable = 0;
+ config->LogFile.Count = 0;
+
+ for (i = 0; i < DLT_SYSTEM_LOG_FILE_MAX; i++) {
+ config->LogFile.ContextId[i] = NULL;
+ config->LogFile.Filename[i] = NULL;
+ config->LogFile.Mode[i] = 0;
+ config->LogFile.TimeDelay[i] = 0;
+ }
+
+ /* Log process */
+ config->LogProcesses.Enable = 0;
+ config->LogProcesses.ContextId = "PROC";
+ config->LogProcesses.Count = 0;
+
+ for (i = 0; i < DLT_SYSTEM_LOG_PROCESSES_MAX; i++) {
+ config->LogProcesses.Name[i] = NULL;
+ config->LogProcesses.Filename[i] = NULL;
+ config->LogProcesses.Mode[i] = 0;
+ config->LogProcesses.TimeDelay[i] = 0;
+ }
}
/**
@@ -195,254 +194,244 @@ void init_configuration(DltSystemConfiguration *config)
*/
int read_configuration_file(DltSystemConfiguration *config, char *file_name)
{
- FILE *file;
- char *line, *token, *value, *pch;
- int ret = 0;
-
- init_configuration(config);
-
- file = fopen(file_name, "r");
-
- if(file == NULL)
- {
- fprintf(stderr, "dlt-system-options, could not open configuration file.\n");
- return -1;
- }
-
- line = malloc(MAX_LINE);
- token = malloc(MAX_LINE);
- value = malloc(MAX_LINE);
-
- MALLOC_ASSERT(line);
- MALLOC_ASSERT(token);
- MALLOC_ASSERT(value);
-
- while(fgets(line, MAX_LINE, file) != NULL)
- {
- token[0] = 0;
- value[0] = 0;
-
- pch = strtok (line, " =\r\n");
- while(pch != NULL)
- {
- if(pch[0] == '#')
- break;
-
- if(token[0] == 0)
- {
- strncpy(token, pch, MAX_LINE-1);
- token[MAX_LINE-1]=0;
- }
- else
- {
- strncpy(value, pch, MAX_LINE);
- value[MAX_LINE-1]=0;
- break;
- }
-
- pch = strtok (NULL, " =\r\n");
- }
-
- if(token[0] && value[0])
- {
- // Common
- if(strcmp(token, "ApplicationId") == 0)
- {
- config->ApplicationId = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->ApplicationId);
- strcpy(config->ApplicationId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
-
- // Shell
- else if(strcmp(token, "ShellEnable") == 0)
- {
- config->Shell.Enable = atoi(value);
- }
-
- // Syslog
- else if(strcmp(token, "SyslogEnable") == 0)
- {
- config->Syslog.Enable = atoi(value);
- }
- else if(strcmp(token, "SyslogContextId") == 0)
- {
- config->Syslog.ContextId = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->Syslog.ContextId);
- strcpy(config->Syslog.ContextId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "SyslogPort") == 0)
- {
- config->Syslog.Port = atoi(value);
- }
-
- // Journal
- else if(strcmp(token, "JournalEnable") == 0)
- {
- config->Journal.Enable = atoi(value);
- }
- else if(strcmp(token, "JournalContextId") == 0)
- {
- config->Journal.ContextId = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->Journal.ContextId);
- strcpy(config->Journal.ContextId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "JournalCurrentBoot") == 0)
- {
- config->Journal.CurrentBoot = atoi(value);
- }
- else if(strcmp(token, "JournalFollow") == 0)
- {
- config->Journal.Follow = atoi(value);
- }
- else if(strcmp(token, "JournalMapLogLevels") == 0)
- {
- config->Journal.MapLogLevels = atoi(value);
- }
-
- // File transfer
- else if(strcmp(token, "FiletransferEnable") == 0)
- {
- config->Filetransfer.Enable = atoi(value);
- }
- else if(strcmp(token, "FiletransferContextId") == 0)
- {
- config->Filetransfer.ContextId = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->Filetransfer.ContextId);
- strcpy(config->Filetransfer.ContextId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "FiletransferTimeStartup") == 0)
- {
- config->Filetransfer.TimeStartup = atoi(value);
- }
- else if(strcmp(token, "FiletransferTimeDelay") == 0)
- {
- config->Filetransfer.TimeDelay = atoi(value);
- }
- else if(strcmp(token, "FiletransferTimeoutBetweenLogs") == 0)
- {
- config->Filetransfer.TimeoutBetweenLogs = atoi(value);
- }
- else if(strcmp(token, "FiletransferTempDir") == 0)
- {
- config->Filetransfer.TempDir = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->Filetransfer.TempDir);
- strcpy(config->Filetransfer.TempDir, value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "FiletransferDirectory") == 0)
- {
- config->Filetransfer.Directory[config->Filetransfer.Count] = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->Filetransfer.Directory[config->Filetransfer.Count]);
- strcpy(config->Filetransfer.Directory[config->Filetransfer.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "FiletransferCompression") == 0)
- {
- config->Filetransfer.Compression[config->Filetransfer.Count] = atoi(value);
- }
- else if(strcmp(token, "FiletransferCompressionLevel") == 0)
- {
- config->Filetransfer.CompressionLevel[config->Filetransfer.Count] = atoi(value);
- if(config->Filetransfer.Count < (DLT_SYSTEM_LOG_DIRS_MAX - 1))
- {
- config->Filetransfer.Count++;
- }
- else
- {
- fprintf(stderr,
- "Too many file transfer directories configured. Maximum: %d\n",
- DLT_SYSTEM_LOG_DIRS_MAX);
- ret = -1;
- break;
- }
- }
-
- // Log files
- else if(strcmp(token, "LogFileEnable") == 0)
- {
- config->LogFile.Enable = atoi(value);
- }
- else if(strcmp(token, "LogFileFilename") == 0)
- {
- config->LogFile.Filename[config->LogFile.Count] = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->LogFile.Filename[config->LogFile.Count]);
- strcpy(config->LogFile.Filename[config->LogFile.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "LogFileMode") == 0)
- {
- config->LogFile.Mode[config->LogFile.Count] = atoi(value);
- }
- else if(strcmp(token, "LogFileTimeDelay") == 0)
- {
- config->LogFile.TimeDelay[config->LogFile.Count] = atoi(value);
- }
- else if(strcmp(token, "LogFileContextId") == 0)
- {
- config->LogFile.ContextId[config->LogFile.Count] = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->LogFile.ContextId[config->LogFile.Count]);
- strcpy(config->LogFile.ContextId[config->LogFile.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
- if(config->LogFile.Count < (DLT_SYSTEM_LOG_FILE_MAX - 1))
- {
- config->LogFile.Count++;
- }
- else
- {
- fprintf(stderr,
- "Too many log files configured. Maximum: %d\n",
- DLT_SYSTEM_LOG_FILE_MAX);
- ret = -1;
- break;
- }
-
- }
-
- // Log Processes
- else if(strcmp(token, "LogProcessesEnable") == 0)
- {
- config->LogProcesses.Enable = atoi(value);
- }
- else if(strcmp(token, "LogProcessesContextId") == 0)
- {
- config->LogProcesses.ContextId = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->LogProcesses.ContextId);
- strcpy(config->LogProcesses.ContextId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "LogProcessName") == 0)
- {
- config->LogProcesses.Name[config->LogProcesses.Count] = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->LogProcesses.Name[config->LogProcesses.Count]);
- strcpy(config->LogProcesses.Name[config->LogProcesses.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "LogProcessFilename") == 0)
- {
- config->LogProcesses.Filename[config->LogProcesses.Count] = malloc(strlen(value)+1);
- MALLOC_ASSERT(config->LogProcesses.Filename[config->LogProcesses.Count]);
- strcpy(config->LogProcesses.Filename[config->LogProcesses.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
- }
- else if(strcmp(token, "LogProcessMode") == 0)
- {
- config->LogProcesses.Mode[config->LogProcesses.Count] = atoi(value);
- }
- else if(strcmp(token, "LogProcessTimeDelay") == 0)
- {
- config->LogProcesses.TimeDelay[config->LogProcesses.Count] = atoi(value);
- if(config->LogProcesses.Count < (DLT_SYSTEM_LOG_PROCESSES_MAX - 1))
- {
- config->LogProcesses.Count++;
- }
- else
- {
- fprintf(stderr,
- "Too many processes to log configured. Maximum: %d\n",
- DLT_SYSTEM_LOG_PROCESSES_MAX);
- ret = -1;
- break;
- }
-
- }
- }
- }
- fclose(file);
- free(value);
- free(token);
- free(line);
- return ret;
+ FILE *file;
+ char *line, *token, *value, *pch;
+ int ret = 0;
+
+ init_configuration(config);
+
+ file = fopen(file_name, "r");
+
+ if (file == NULL) {
+ fprintf(stderr, "dlt-system-options, could not open configuration file.\n");
+ return -1;
+ }
+
+ line = malloc(MAX_LINE);
+ token = malloc(MAX_LINE);
+ value = malloc(MAX_LINE);
+
+ MALLOC_ASSERT(line);
+ MALLOC_ASSERT(token);
+ MALLOC_ASSERT(value);
+
+ while (fgets(line, MAX_LINE, file) != NULL) {
+ token[0] = 0;
+ value[0] = 0;
+
+ pch = strtok (line, " =\r\n");
+
+ while (pch != NULL) {
+ if (pch[0] == '#')
+ break;
+
+ if (token[0] == 0) {
+ strncpy(token, pch, MAX_LINE - 1);
+ token[MAX_LINE - 1] = 0;
+ }
+ else {
+ strncpy(value, pch, MAX_LINE);
+ value[MAX_LINE - 1] = 0;
+ break;
+ }
+
+ pch = strtok (NULL, " =\r\n");
+ }
+
+ if (token[0] && value[0]) {
+ /* Common */
+ if (strcmp(token, "ApplicationId") == 0) {
+ config->ApplicationId = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->ApplicationId);
+ strcpy(config->ApplicationId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+
+ /* Shell */
+ else if (strcmp(token, "ShellEnable") == 0)
+ {
+ config->Shell.Enable = atoi(value);
+ }
+
+ /* Syslog */
+ else if (strcmp(token, "SyslogEnable") == 0)
+ {
+ config->Syslog.Enable = atoi(value);
+ }
+ else if (strcmp(token, "SyslogContextId") == 0)
+ {
+ config->Syslog.ContextId = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->Syslog.ContextId);
+ strcpy(config->Syslog.ContextId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "SyslogPort") == 0)
+ {
+ config->Syslog.Port = atoi(value);
+ }
+
+ /* Journal */
+ else if (strcmp(token, "JournalEnable") == 0)
+ {
+ config->Journal.Enable = atoi(value);
+ }
+ else if (strcmp(token, "JournalContextId") == 0)
+ {
+ config->Journal.ContextId = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->Journal.ContextId);
+ strcpy(config->Journal.ContextId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "JournalCurrentBoot") == 0)
+ {
+ config->Journal.CurrentBoot = atoi(value);
+ }
+ else if (strcmp(token, "JournalFollow") == 0)
+ {
+ config->Journal.Follow = atoi(value);
+ }
+ else if (strcmp(token, "JournalMapLogLevels") == 0)
+ {
+ config->Journal.MapLogLevels = atoi(value);
+ }
+
+ /* File transfer */
+ else if (strcmp(token, "FiletransferEnable") == 0)
+ {
+ config->Filetransfer.Enable = atoi(value);
+ }
+ else if (strcmp(token, "FiletransferContextId") == 0)
+ {
+ config->Filetransfer.ContextId = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->Filetransfer.ContextId);
+ strcpy(config->Filetransfer.ContextId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "FiletransferTimeStartup") == 0)
+ {
+ config->Filetransfer.TimeStartup = atoi(value);
+ }
+ else if (strcmp(token, "FiletransferTimeDelay") == 0)
+ {
+ config->Filetransfer.TimeDelay = atoi(value);
+ }
+ else if (strcmp(token, "FiletransferTimeoutBetweenLogs") == 0)
+ {
+ config->Filetransfer.TimeoutBetweenLogs = atoi(value);
+ }
+ else if (strcmp(token, "FiletransferTempDir") == 0)
+ {
+ config->Filetransfer.TempDir = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->Filetransfer.TempDir);
+ strcpy(config->Filetransfer.TempDir, value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "FiletransferDirectory") == 0)
+ {
+ config->Filetransfer.Directory[config->Filetransfer.Count] = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->Filetransfer.Directory[config->Filetransfer.Count]);
+ strcpy(config->Filetransfer.Directory[config->Filetransfer.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "FiletransferCompression") == 0)
+ {
+ config->Filetransfer.Compression[config->Filetransfer.Count] = atoi(value);
+ }
+ else if (strcmp(token, "FiletransferCompressionLevel") == 0)
+ {
+ config->Filetransfer.CompressionLevel[config->Filetransfer.Count] = atoi(value);
+
+ if (config->Filetransfer.Count < (DLT_SYSTEM_LOG_DIRS_MAX - 1)) {
+ config->Filetransfer.Count++;
+ }
+ else {
+ fprintf(stderr,
+ "Too many file transfer directories configured. Maximum: %d\n",
+ DLT_SYSTEM_LOG_DIRS_MAX);
+ ret = -1;
+ break;
+ }
+ }
+
+ /* Log files */
+ else if (strcmp(token, "LogFileEnable") == 0)
+ {
+ config->LogFile.Enable = atoi(value);
+ }
+ else if (strcmp(token, "LogFileFilename") == 0)
+ {
+ config->LogFile.Filename[config->LogFile.Count] = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->LogFile.Filename[config->LogFile.Count]);
+ strcpy(config->LogFile.Filename[config->LogFile.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "LogFileMode") == 0)
+ {
+ config->LogFile.Mode[config->LogFile.Count] = atoi(value);
+ }
+ else if (strcmp(token, "LogFileTimeDelay") == 0)
+ {
+ config->LogFile.TimeDelay[config->LogFile.Count] = atoi(value);
+ }
+ else if (strcmp(token, "LogFileContextId") == 0)
+ {
+ config->LogFile.ContextId[config->LogFile.Count] = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->LogFile.ContextId[config->LogFile.Count]);
+ strcpy(config->LogFile.ContextId[config->LogFile.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
+
+ if (config->LogFile.Count < (DLT_SYSTEM_LOG_FILE_MAX - 1)) {
+ config->LogFile.Count++;
+ }
+ else {
+ fprintf(stderr,
+ "Too many log files configured. Maximum: %d\n",
+ DLT_SYSTEM_LOG_FILE_MAX);
+ ret = -1;
+ break;
+ }
+ }
+
+ /* Log Processes */
+ else if (strcmp(token, "LogProcessesEnable") == 0)
+ {
+ config->LogProcesses.Enable = atoi(value);
+ }
+ else if (strcmp(token, "LogProcessesContextId") == 0)
+ {
+ config->LogProcesses.ContextId = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->LogProcesses.ContextId);
+ strcpy(config->LogProcesses.ContextId, value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "LogProcessName") == 0)
+ {
+ config->LogProcesses.Name[config->LogProcesses.Count] = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->LogProcesses.Name[config->LogProcesses.Count]);
+ strcpy(config->LogProcesses.Name[config->LogProcesses.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "LogProcessFilename") == 0)
+ {
+ config->LogProcesses.Filename[config->LogProcesses.Count] = malloc(strlen(value) + 1);
+ MALLOC_ASSERT(config->LogProcesses.Filename[config->LogProcesses.Count]);
+ strcpy(config->LogProcesses.Filename[config->LogProcesses.Count], value); /* strcpy unritical here, because size matches exactly the size to be copied */
+ }
+ else if (strcmp(token, "LogProcessMode") == 0)
+ {
+ config->LogProcesses.Mode[config->LogProcesses.Count] = atoi(value);
+ }
+ else if (strcmp(token, "LogProcessTimeDelay") == 0)
+ {
+ config->LogProcesses.TimeDelay[config->LogProcesses.Count] = atoi(value);
+
+ if (config->LogProcesses.Count < (DLT_SYSTEM_LOG_PROCESSES_MAX - 1)) {
+ config->LogProcesses.Count++;
+ }
+ else {
+ fprintf(stderr,
+ "Too many processes to log configured. Maximum: %d\n",
+ DLT_SYSTEM_LOG_PROCESSES_MAX);
+ ret = -1;
+ break;
+ }
+ }
+ }
+ }
+
+ fclose(file);
+ free(value);
+ free(token);
+ free(line);
+ return ret;
}