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 */