diff options
author | Yusuke Sato <yusuke-sato@apn.alpine.co.jp> | 2016-02-29 14:42:13 +0100 |
---|---|---|
committer | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2016-09-23 15:37:24 +0200 |
commit | 66e3ce5057467d3c1e2fcad3f590676c2721e957 (patch) | |
tree | 04889d0b09a98042cc32f3b747992ce3094a8228 /src/lib | |
parent | 6d61faad56471f5b86ac167e403d30ae2514c1a5 (diff) | |
download | DLT-daemon-66e3ce5057467d3c1e2fcad3f590676c2721e957.tar.gz |
Fix: File name is broken when file is transferred on 64 bit OS.
When file transfer feature of dlt-system is used on the 64 bit OS, file name is overwritten at the unique name creation phase.
File serial number should be maximum 10-digit decimal number.
Signed-off-by: Yusuke Sato <yusuke-sato@apn.alpine.co.jp>
Change-Id: I18fac363a103b6806ed9eb003ebbb305af7e7f58
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/dlt_filetransfer.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/lib/dlt_filetransfer.c b/src/lib/dlt_filetransfer.c index 13de07c..1038e0a 100644 --- a/src/lib/dlt_filetransfer.c +++ b/src/lib/dlt_filetransfer.c @@ -78,7 +78,7 @@ unsigned char buffer[BUFFER_SIZE]; * @param file Absolute file path * @return Returns the size of the file (if it is a regular file or a symbolic link) in bytes. */ -unsigned long getFilesize(const char* file, int *ok){ +uint32_t getFilesize(const char* file, int *ok){ struct stat st; if ( -1 == stat(file, &st)) @@ -88,7 +88,7 @@ unsigned long getFilesize(const char* file, int *ok){ return 0; } *ok = 1; - return (unsigned long)st.st_size; + return (uint32_t)st.st_size; } /** A simple Hash function for C-strings @@ -96,7 +96,7 @@ unsigned long getFilesize(const char* file, int *ok){ * @param hash start and result value for hash computation * */ -void stringHash(const char* str, unsigned long *hash ) +void stringHash(const char* str, uint32_t *hash ) { if (!str || !hash) return; @@ -121,9 +121,9 @@ void stringHash(const char* str, unsigned long *hash ) * @param value *ok == 0 -> error; *ok == 1 -> ok * @return Returns a unique number associated with each filename */ -unsigned long getFileSerialNumber(const char* file, int *ok){ +uint32_t getFileSerialNumber(const char* file, int *ok){ struct stat st; - unsigned long ret; + uint32_t ret; if ( -1 == stat(file, &st)) { *ok = 0; @@ -224,10 +224,10 @@ void dlt_user_log_file_errorMessage(DltContext *fileContext, const char *filenam if(errno != ENOENT) { int ok = 0; - unsigned long fserial = getFileSerialNumber(filename,&ok); + uint32_t fserial = getFileSerialNumber(filename,&ok); if (!ok) DLT_LOG(*fileContext,DLT_LOG_ERROR,DLT_STRING("dlt_user_log_file_errorMessage, error in getFileSerialNumber for: "),DLT_STRING(filename)); - unsigned long fsize = getFilesize(filename,&ok); + uint32_t fsize = getFilesize(filename,&ok); if (!ok) DLT_LOG(*fileContext,DLT_LOG_ERROR,DLT_STRING("dlt_user_log_file_errorMessage, error in getFilesize for: "),DLT_STRING(filename)); char *fcreationdate = getFileCreationDate2(filename,&ok); @@ -273,11 +273,11 @@ int dlt_user_log_file_infoAbout(DltContext *fileContext, const char *filename){ { int ok; - unsigned long fsize = getFilesize(filename,&ok); + uint32_t fsize = getFilesize(filename,&ok); if (!ok) DLT_LOG(*fileContext,DLT_LOG_ERROR,DLT_STRING("dlt_user_log_file_infoAbout, Error getting size of file:"),DLT_STRING(filename)); - unsigned long fserialnumber = getFileSerialNumber(filename,&ok); + uint32_t fserialnumber = getFileSerialNumber(filename,&ok); if (!ok) DLT_LOG(*fileContext,DLT_LOG_ERROR,DLT_STRING("dlt_user_log_file_infoAbout, Error getting serial number of file:"),DLT_STRING(filename)); @@ -351,7 +351,7 @@ int dlt_user_log_file_complete(DltContext *fileContext, const char *filename, in */ int dlt_user_log_file_packagesCount(DltContext *fileContext, const char *filename){ int packages; - long filesize; + uint32_t filesize; if(isFile(filename)) { @@ -401,11 +401,11 @@ int dlt_user_log_file_header_alias(DltContext *fileContext,const char *filename, { int ok; - unsigned long fserialnumber = getFileSerialNumber(filename,&ok); + uint32_t fserialnumber = getFileSerialNumber(filename,&ok); if (!ok) DLT_LOG(*fileContext,DLT_LOG_ERROR,DLT_STRING("dlt_user_log_file_header_alias, Error getting serial number of file:"),DLT_STRING(filename)); - unsigned long fsize = getFilesize(filename,&ok); + uint32_t fsize = getFilesize(filename,&ok); if (!ok) DLT_LOG(*fileContext,DLT_LOG_ERROR,DLT_STRING("dlt_user_log_file_header_alias, Error getting size of file:"),DLT_STRING(filename)); @@ -450,11 +450,11 @@ int dlt_user_log_file_header(DltContext *fileContext,const char *filename){ { int ok; - unsigned long fserialnumber = getFileSerialNumber(filename,&ok); + uint32_t fserialnumber = getFileSerialNumber(filename,&ok); if (!ok) DLT_LOG(*fileContext,DLT_LOG_ERROR,DLT_STRING("dlt_user_log_file_header, Error getting serial number of file:"),DLT_STRING(filename)); - unsigned long fsize = getFilesize(filename,&ok); + uint32_t fsize = getFilesize(filename,&ok); if (!ok) DLT_LOG(*fileContext,DLT_LOG_ERROR,DLT_STRING("dlt_user_log_file_header, Error getting size of file:"),DLT_STRING(filename)); @@ -496,7 +496,7 @@ int dlt_user_log_file_header(DltContext *fileContext,const char *filename){ int dlt_user_log_file_data(DltContext *fileContext,const char *filename, int packageToTransfer, int timeout){ FILE *file; int pkgNumber; - long readBytes; + uint32_t readBytes; if(isFile(filename)) { @@ -547,7 +547,7 @@ int dlt_user_log_file_data(DltContext *fileContext,const char *filename, int pac readBytes = fread(buffer, sizeof(char), BUFFER_SIZE, file); int ok; - unsigned long fserial = getFileSerialNumber(filename,&ok); + uint32_t fserial = getFileSerialNumber(filename,&ok); if (1 != ok) { @@ -578,7 +578,7 @@ int dlt_user_log_file_data(DltContext *fileContext,const char *filename, int pac readBytes = fread(buffer, sizeof(char), BUFFER_SIZE, file); int ok; - unsigned long fserial = getFileSerialNumber(filename,&ok); + uint32_t fserial = getFileSerialNumber(filename,&ok); if (1 != ok) { @@ -624,7 +624,7 @@ int dlt_user_log_file_end(DltContext *fileContext,const char *filename,int delet { int ok; - unsigned long fserial = getFileSerialNumber(filename,&ok); + uint32_t fserial = getFileSerialNumber(filename,&ok); if (1 != ok) { |