From 8a866b6754c8933051dda7e10b49ffa64c93fcbc Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Thu, 3 Sep 2020 22:02:49 -0500 Subject: [PATCH] Bugfix/file object file size type (#116) * Fix file object example file size type * Add include for definition of BACnet unsigned. Co-authored-by: Steve Karg --- .gitignore | 2 ++ src/bacnet/basic/object/bacfile.c | 10 +++++++--- src/bacnet/basic/object/bacfile.h | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index b1329144..1d83e7a5 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,5 @@ address_cache /_build/* CMakeLists.txt.user /out/* +Obj/ +Release/ diff --git a/src/bacnet/basic/object/bacfile.c b/src/bacnet/basic/object/bacfile.c index 29e78d74..7dc8f32a 100644 --- a/src/bacnet/basic/object/bacfile.c +++ b/src/bacnet/basic/object/bacfile.c @@ -163,17 +163,21 @@ static long fsize(FILE *pFile) return (size); } -unsigned bacfile_file_size(uint32_t object_instance) +BACNET_UNSIGNED_INTEGER bacfile_file_size(uint32_t object_instance) { char *pFilename = NULL; FILE *pFile = NULL; - unsigned file_size = 0; + long file_position = 0; + BACNET_UNSIGNED_INTEGER file_size = 0; pFilename = bacfile_name(object_instance); if (pFilename) { pFile = fopen(pFilename, "rb"); if (pFile) { - file_size = fsize(pFile); + file_position = fsize(pFile); + if (file_position >= 0) { + file_size = (BACNET_UNSIGNED_INTEGER)file_position; + } fclose(pFile); } } diff --git a/src/bacnet/basic/object/bacfile.h b/src/bacnet/basic/object/bacfile.h index 298a8f46..183b39d3 100644 --- a/src/bacnet/basic/object/bacfile.h +++ b/src/bacnet/basic/object/bacfile.h @@ -39,6 +39,7 @@ #include "bacnet/bacnet_stack_exports.h" #include "bacnet/bacdef.h" #include "bacnet/bacenum.h" +#include "bacnet/bacint.h" #include "bacnet/apdu.h" #include "bacnet/arf.h" #include "bacnet/awf.h" @@ -108,7 +109,7 @@ extern "C" { void bacfile_init( void); BACNET_STACK_EXPORT - uint32_t bacfile_file_size( + BACNET_UNSIGNED_INTEGER bacfile_file_size( uint32_t instance); /* handling for read property service */