diff options
author | Christian Muck <christian.muck@bmw.de> | 2011-09-05 15:02:23 +0200 |
---|---|---|
committer | Christian Muck <christian.muck@bmw.de> | 2011-09-05 15:02:23 +0200 |
commit | d818704990324fbacd0c7cfb92ba1e7e73e59ab0 (patch) | |
tree | ed186088c3f7e2eef4bec828a0ce5a497e25ef7a /src/lib | |
parent | 48928c656c68cc4a63e457c2511bbff457c87c36 (diff) | |
download | DLT-daemon-d818704990324fbacd0c7cfb92ba1e7e73e59ab0.tar.gz |
[GSW-62] DLT Library version check
Diffstat (limited to 'src/lib')
-rwxr-xr-x | src/lib/CMakeLists.txt | 2 | ||||
-rwxr-xr-x | src/lib/dlt_user.c | 22 | ||||
-rwxr-xr-x | src/lib/dlt_user_cfg.h | 3 |
3 files changed, 25 insertions, 2 deletions
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 4b0f4f0..5fc0802 100755 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -45,7 +45,7 @@ ENDIF(GPROF_DLT_LIB) target_link_libraries(dlt rt ${CMAKE_THREAD_LIBS_INIT}) -set_target_properties(dlt PROPERTIES VERSION 2.2.0 SOVERSION 2) +set_target_properties(dlt PROPERTIES VERSION ${PRINT_VERSION} SOVERSION ${PRINT_MAJOR_VERSION}) install(TARGETS dlt LIBRARY DESTINATION lib diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index e1225bb..4493818 100755 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -124,6 +124,24 @@ static int dlt_user_log_check_user_message(void); static void dlt_user_log_reattach_to_daemon(void); static int dlt_user_log_send_overflow(void); +int dlt_user_check_library_version(const char *user_major_version,const char *user_minor_version){ + + char str[200]; + char lib_major_version[DLT_USER_MAX_LIB_VERSION_LENGTH]; + char lib_minor_version[DLT_USER_MAX_LIB_VERSION_LENGTH]; + + dlt_get_major_version( lib_major_version); + dlt_get_minor_version( lib_minor_version); + + if( (strcmp(lib_major_version,user_major_version)!=0) || (strcmp(lib_minor_version,user_minor_version)!=0)) + { + sprintf(str,"DLT Library version check failed! Installed DLT library version is %s.%s - Application using DLT library version %s.%s\n",lib_major_version,lib_minor_version,user_major_version,user_minor_version); + dlt_log(LOG_WARNING, str); + return -1; + } + return 0; +} + int dlt_init(void) { char filename[DLT_USER_MAX_FILENAME_LENGTH]; @@ -372,7 +390,7 @@ int dlt_free(void) -int dlt_register_app(const char *appid, const char * description) +int dlt_register_app(const char *appid, const char * description, const char * user_major_version,const char * user_minor_version) { int ret; @@ -382,6 +400,8 @@ int dlt_register_app(const char *appid, const char * description) { return -1; } + + dlt_user_check_library_version(user_major_version, user_minor_version); } if ((appid==0) || (appid[0]=='\0')) diff --git a/src/lib/dlt_user_cfg.h b/src/lib/dlt_user_cfg.h index e6476f0..19228b4 100755 --- a/src/lib/dlt_user_cfg.h +++ b/src/lib/dlt_user_cfg.h @@ -104,6 +104,9 @@ /* Maximu length of a filename string */
#define DLT_USER_MAX_FILENAME_LENGTH 255
+/* Maximum length of a single version number */
+#define DLT_USER_MAX_LIB_VERSION_LENGTH 3
+
/* Length of buffer for constructing text output */
#define DLT_USER_TEXT_LENGTH 10024
|