From bd2b96363d98b35641567318b3ca568cf72cc593 Mon Sep 17 00:00:00 2001 From: Lassi Marttala Date: Wed, 14 Mar 2012 10:29:46 +0100 Subject: GDLT-2, Allow for enabling/disabling compression for the separate directories. Signed-off-by: Christian Muck --- src/system/dlt-system-log.c | 31 +++++++++++++++++++++---------- src/system/dlt-system.c | 12 +++++++++--- src/system/dlt-system.conf | 7 +++++-- src/system/dlt-system.h | 3 ++- 4 files changed, 37 insertions(+), 16 deletions(-) diff --git a/src/system/dlt-system-log.c b/src/system/dlt-system-log.c index 9e56182..0c00154 100644 --- a/src/system/dlt-system-log.c +++ b/src/system/dlt-system-log.c @@ -230,6 +230,16 @@ void dlt_system_filetransfer_run(DltSystemOptions *options,DltSystemRuntime *run time_oldest = status.st_mtime; strcpy(runtime->filetransferFile,filename); runtime->filetransferFilesize = status.st_size; + + /* Compress the file if required */ + if(options->FiletransferCompression1 > 0) + { + printf("Start compression: %s\n",runtime->filetransferFile); + if(dlt_system_compress_file(runtime->filetransferFile, options->FiletransferCompressionLevel) < 0) + { + return; + } + } } } } @@ -246,7 +256,17 @@ void dlt_system_filetransfer_run(DltSystemOptions *options,DltSystemRuntime *run if((time_oldest == 0 || status.st_mtime < time_oldest) && (status.st_size != 0) && !dlt_system_is_z_file(filename)) { time_oldest = status.st_mtime; strcpy(runtime->filetransferFile,filename); - runtime->filetransferFilesize = status.st_size; + runtime->filetransferFilesize = status.st_size; + + /* Compress the file if required */ + if(options->FiletransferCompression2 > 0) + { + printf("Start compression: %s\n",runtime->filetransferFile); + if(dlt_system_compress_file(runtime->filetransferFile, options->FiletransferCompressionLevel) < 0) + { + return; + } + } } } } @@ -256,15 +276,6 @@ void dlt_system_filetransfer_run(DltSystemOptions *options,DltSystemRuntime *run /* start filetransfer if file exists */ if(runtime->filetransferFile[0]) { - /* Compress the file if required */ - if(options->FiletransferCompression > 0) - { - printf("Start compression: %s\n",runtime->filetransferFile); - if(dlt_system_compress_file(runtime->filetransferFile, options->FiletransferCompressionLevel) < 0) - { - return; - } - } printf("Start Filetransfer: %s\n",runtime->filetransferFile); runtime->filetransferCountPackages = dlt_user_log_file_packagesCount(context,runtime->filetransferFile); if(runtime->filetransferCountPackages < 0 ) diff --git a/src/system/dlt-system.c b/src/system/dlt-system.c index 1d68ecd..d1bffad 100755 --- a/src/system/dlt-system.c +++ b/src/system/dlt-system.c @@ -108,7 +108,8 @@ void dlt_system_init_options(DltSystemOptions *options) /* Filetransfer */ options->FiletransferEnable = 0; - options->FiletransferCompression = 0; + options->FiletransferCompression1 = 1; + options->FiletransferCompression2 = 0; options->FiletransferCompressionLevel = 5; strncpy(options->FiletransferContextId,DEFAULT_FILETRANSFER_CONTEXT_ID,sizeof(options->FiletransferContextId)); strncpy(options->FiletransferDirectory1,DEFAULT_FILETRANSFER_DIRECTORY,sizeof(options->FiletransferDirectory1)); @@ -255,9 +256,14 @@ int dlt_system_parse_configuration(DltSystemOptions *options) options->FiletransferEnable = atoi(value); printf("Option: %s=%s\n",token,value); } - else if(strcmp(token,"FiletransferCompression")==0) + else if(strcmp(token,"FiletransferCompression1")==0) { - options->FiletransferCompression = atoi(value); + options->FiletransferCompression1 = atoi(value); + printf("Option: %s=%s\n",token,value); + } + else if(strcmp(token,"FiletransferCompression2")==0) + { + options->FiletransferCompression2 = atoi(value); printf("Option: %s=%s\n",token,value); } else if(strcmp(token,"FiletransferCompressionLevel")==0) diff --git a/src/system/dlt-system.conf b/src/system/dlt-system.conf index 779894d..2ed14cb 100644 --- a/src/system/dlt-system.conf +++ b/src/system/dlt-system.conf @@ -28,8 +28,11 @@ SyslogPort = 47111 # Enable the Filetransfer (Default: 0) FiletransferEnable = 0 -# Enable the file transfer compression with zlib -FiletransferCompression = 0 +# Enable the file transfer compression with zlib +# You can enable or disable it for FiletransferDirectory 1 and 2 +# separately. +FiletransferCompression1 = 1 +FiletransferCompression2 = 0 FiletransferCompressionLevel = 5 # Directory which contains files to be transfered over DLT (Default: /tmp/filetransfer) diff --git a/src/system/dlt-system.h b/src/system/dlt-system.h index a49ce5a..394da34 100644 --- a/src/system/dlt-system.h +++ b/src/system/dlt-system.h @@ -74,7 +74,8 @@ typedef struct { int SyslogPort; /*# The UDP port opened by DLT system mamager to receive system logs (Default: 47111)*/ int FiletransferEnable; /*# Enable the Filetransfer (Default: 0)*/ - int FiletransferCompression; /*# Enable the Filetransfer compression (Default: 0)*/ + int FiletransferCompression1; /*# Enable the Filetransfer compression for dir 1 (Default: 1)*/ + int FiletransferCompression2; /*# Enable the Filetransfer compression for dir 2 (Default: 0)*/ int FiletransferCompressionLevel; /*# Set the compression level between 0-9 (Default: 5)*/ char FiletransferDirectory1[256]; /*# Directory which contains files to be transfered over DLT (Default: /tmp/filetransfer)# Files are deleted after Filetransfer is finished and after TimeDelay expired*/ char FiletransferDirectory2[256]; -- cgit v1.2.1