Hi Canh See comments in attached diff file. Note: I have not commented the test code, however the comments are applicable for the test code as well
Thanks Lennart > -----Original Message----- > From: Canh Van Truong [mailto:[email protected]] > Sent: den 20 september 2017 05:18 > To: Lennart Lund <[email protected]>; Vu Minh Nguyen > <[email protected]> > Cc: [email protected]; Canh Van Truong > <[email protected]> > Subject: [PATCH 1/1] log: fix incorrect handling of version when initializing > OpenSAF APIs in log service [#2516] > > The version used when initializing the API is in many cases stored in a global > variable and this global variable is used every time the API is initialized. > The version is given as a pointer to this variable. The problem is that this > variable is defined as an [in/out] parameter that gives the version to use > when > initializing [in] but the value shall be changed by the agent to the highest > version supported by the initialized service [out]. This means that the next > time the API is initialized it may be initialized with a higher version. > > This patch help to fix that always initialize OpenSaf API with correct > version in > log service. > --- > src/log/apitest/imm_tstutil.c | 6 +++-- > src/log/apitest/logtest.c | 11 ++++---- > src/log/apitest/logtest.h | 4 ++- > src/log/apitest/logtestfr.c | 14 ++++++---- > src/log/apitest/logutil.c | 6 +++-- > src/log/apitest/tet_LogOiOps.c | 4 +-- > src/log/apitest/tet_Log_recov.c | 11 +++++--- > src/log/apitest/tet_log_longDN.c | 8 +++--- > src/log/apitest/tet_log_runtime_cfgobj.c | 4 +-- > src/log/apitest/tet_multiple_thread.c | 6 +++-- > src/log/apitest/tet_saLogFilterSetCallbackT.c | 8 ++++-- > src/log/apitest/tet_saLogInitialize.c | 38 > +++++++++++++++------------ > src/log/apitest/tet_saLogStreamOpen_2.c | 10 ++++--- > src/log/logd/lgs.h | 2 ++ > src/log/logd/lgs_amf.cc | 5 +--- > src/log/logd/lgs_clm.cc | 8 +++--- > src/log/logd/lgs_config.cc | 4 +-- > src/log/logd/lgs_imm.cc | 24 ++++++++++------- > src/log/logd/lgs_imm_gcfg.cc | 10 ++++--- > src/log/tools/saf_logger.c | 10 ++++--- > 20 files changed, 117 insertions(+), 76 deletions(-) > > diff --git a/src/log/apitest/imm_tstutil.c b/src/log/apitest/imm_tstutil.c > index 723b9b522..f9e6adcae 100644 > --- a/src/log/apitest/imm_tstutil.c > +++ b/src/log/apitest/imm_tstutil.c > @@ -22,7 +22,8 @@ > #include "base/saf_error.h" > #include "base/osaf_extended_name.h" > > -static SaVersionT immVersion = {'A', 2, 11}; > +const SaVersionT KImmVersion = {'A', 02, 11}; > + > > bool get_multivalue_type_string_from_imm(SaImmHandleT *omHandle, > SaConstStringT objectName, > @@ -34,6 +35,7 @@ bool > get_multivalue_type_string_from_imm(SaImmHandleT *omHandle, > SaImmAttrValuesT_2 *attribute; > SaImmAttrValuesT_2 **attributes; > bool func_rc = true; > + SaVersionT imm_version = KImmVersion; > > // printf(">> get_multivalue_string_type_from_imm()\n"); > > @@ -41,7 +43,7 @@ bool > get_multivalue_type_string_from_imm(SaImmHandleT *omHandle, > /* Make sure this is a NULL pointer if no values are found */ > *multivalue_array = NULL; > > - om_rc = immutil_saImmOmInitialize(omHandle, NULL, > &immVersion); > + om_rc = immutil_saImmOmInitialize(omHandle, NULL, > &imm_version); > if (om_rc != SA_AIS_OK) { > printf("immutil_saImmOmInitialize Fail '%s'\n", > saf_error(om_rc)); > diff --git a/src/log/apitest/logtest.c b/src/log/apitest/logtest.c > index 256495726..0a2727cfa 100644 > --- a/src/log/apitest/logtest.c > +++ b/src/log/apitest/logtest.c > @@ -85,8 +85,6 @@ SaLogRecordT genLogRecord = { > .logHeader.genericHdr.logSvcUsrName = &logSvcUsrName, > .logBuffer = &genLogBuffer}; > > -SaVersionT logVersion = {'A', 0x02, 0x03}; > -SaVersionT immVersion = {'A', 2, 11}; > SaAisErrorT rc; > SaLogHandleT logHandle; > SaLogStreamHandleT logStreamHandle; > @@ -107,11 +105,12 @@ void init_logrootpath(void) > const char logRootDirectory_name[] = "logRootDirectory"; > SaImmAttrNameT attributeNames[2] = {(char > *)logRootDirectory_name, > NULL}; > + SaVersionT imm_version = KImmVersion; > void *value; > > saAisNameLend(config, &objectName); > /* NOTE: immutil init osaf_assert if error */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, > &imm_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get all attributes of the object */ > @@ -143,11 +142,12 @@ int get_attr_value(SaNameT *inObjName, char > *inAttr, void *outValue) > SaImmAttrValuesT_2 **attributes; > SaAisErrorT ais_rc = SA_AIS_OK; > SaImmAttrNameT attributeNames[2] = {inAttr, NULL}; > + SaVersionT imm_version = KImmVersion; > void *value = NULL; > int rc = 0; > > /* NOTE: immutil init osaf_assert if error */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, > &imm_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get all attributes of the object */ > @@ -292,11 +292,12 @@ int get_active_sc(void) > SaImmAttrNameT attributeNames[2] = {(char > *)saAmfSUNumCurrActiveSIs, > NULL}; > SaUint32T curr_act_sis = 0; > + SaVersionT imm_version = KImmVersion; > > saAisNameLend(objname, &objectName1); > /* NOTE: immutil init osaf_assert if error > */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, > &imm_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get attributes of the object > diff --git a/src/log/apitest/logtest.h b/src/log/apitest/logtest.h > index 9b91871ed..98847b5f9 100644 > --- a/src/log/apitest/logtest.h > +++ b/src/log/apitest/logtest.h > @@ -65,7 +65,6 @@ extern SaNameT notificationObject; > extern SaNameT configurationObject; > extern SaNameT saNameT_Object_256; > extern SaNameT saNameT_appstream_name_256; > -extern SaVersionT logVersion; > extern SaAisErrorT rc; > extern SaLogHandleT logHandle; > extern SaLogStreamHandleT logStreamHandle; > @@ -78,6 +77,9 @@ extern SaNameT logSvcUsrName; > extern SaLogRecordT genLogRecord; > extern char log_root_path[]; > > +const static SaVersionT KLogVersion = {'A', 0x02, 0x03}; > +const static SaVersionT KImmVersion = {'A', 02, 11}; > + > /* Vebose mode. If set some test cases will print extra information */ > bool verbose_flg; > void printf_v(const char *format, ...) __attribute__((format(printf, 1, 2))); > diff --git a/src/log/apitest/logtestfr.c b/src/log/apitest/logtestfr.c > index df5721181..f2d0b2b26 100644 > --- a/src/log/apitest/logtestfr.c > +++ b/src/log/apitest/logtestfr.c > @@ -41,8 +41,6 @@ > > /********************************************************** > ********************* > * Global variables and defines > */ > -static SaVersionT logVersion = {'A', 0x02, 0x03}; > -static SaVersionT immVersion = {'A', 2, 11}; > > static SaLogHandleT logHandle; > static SaLogStreamHandleT logStreamHandle; > @@ -61,6 +59,9 @@ const char logfile_path_str[] = "logtestfr_path"; > const SaUint32T logrec_max_size = 256; > const SaUint64T logfile_max_size = 256 * 10; > > +const SaVersionT KLogVersion = {'A', 0x02, 0x03}; > +const SaVersionT KImmVersion = {'A', 02, 11}; > + > #define STREAM_NAME_STR "safLgStr=logtestfr_stream" > #define IMMLIST_CMD "immlist safLgStr=logtestfr_stream" > #define LOGTEST_MSG "logtestfr test message" > @@ -91,10 +92,11 @@ static int get_active_sc(void) > SaImmAttrNameT attributeNames[2] = {(char > *)saAmfSUNumCurrActiveSIs, > NULL}; > SaUint32T curr_act_sis = 0; > + SaVersionT imm_version = KImmVersion; > > /* NOTE: immutil init osaf_assert if error > */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, > &imm_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get attributes of the object > @@ -190,10 +192,11 @@ void get_logRootDirectory(char *path_str) > const char logRootDirectory_name[] = "logRootDirectory"; > SaImmAttrNameT attributeNames[2] = {(char > *)logRootDirectory_name, > NULL}; > + SaVersionT imm_version = KImmVersion; > void *value; > > /* NOTE: immutil init osaf_assert if error */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, > &imm_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get all attributes of the object */ > @@ -237,6 +240,7 @@ static int init_log_open_stream(SaAisErrorT *ais_rc) > { > int rc = 0; > int trycnt = 0; > + SaVersionT log_version = KLogVersion; > > /* Prepare callback */ > logCallbacks.saLogWriteLogCallback = log_write_callback; > @@ -245,7 +249,7 @@ static int init_log_open_stream(SaAisErrorT *ais_rc) > do { > /* Try again loop. If other error end loop */ > *ais_rc = > - saLogInitialize(&logHandle, &logCallbacks, &logVersion); > + saLogInitialize(&logHandle, &logCallbacks, &log_version); > if (*ais_rc != SA_AIS_ERR_TRY_AGAIN) { > break; > } > diff --git a/src/log/apitest/logutil.c b/src/log/apitest/logutil.c > index efc39204b..a511ae70a 100644 > --- a/src/log/apitest/logutil.c > +++ b/src/log/apitest/logutil.c > @@ -68,12 +68,14 @@ int systemCall(const char *command) > */ > SaAisErrorT logInitialize(void) > { > + SaVersionT log_version = KLogVersion; > SaAisErrorT rc = > - saLogInitialize(&logHandle, &logCallbacks, &logVersion); > + saLogInitialize(&logHandle, &logCallbacks, &log_version); > unsigned int nTries = 1; > while (rc == SA_AIS_ERR_TRY_AGAIN && nTries < logProfile.nTries) { > usleep(logProfile.retryInterval * 1000); > - rc = saLogInitialize(&logHandle, &logCallbacks, &logVersion); > + log_version = KLogVersion; > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > nTries++; > } > > diff --git a/src/log/apitest/tet_LogOiOps.c b/src/log/apitest/tet_LogOiOps.c > index 7068b09d1..e7142fe7a 100644 > --- a/src/log/apitest/tet_LogOiOps.c > +++ b/src/log/apitest/tet_LogOiOps.c > @@ -1443,11 +1443,11 @@ void saLogOi_50() > > static int get_filter_cnt_attr(const SaNameT *objName) > { > - SaVersionT immVersion = {'A', 2, 11}; > + SaVersionT imm_version = KImmVersion; > int filter_cnt = -1; > SaImmHandleT immOmHandle; > SaImmAccessorHandleT immAccHandle; > - saImmOmInitialize(&immOmHandle, NULL, &immVersion); > + saImmOmInitialize(&immOmHandle, NULL, &imm_version); > saImmOmAccessorInitialize(immOmHandle, &immAccHandle); > > SaImmAttrNameT fobj = {"logStreamDiscardedCounter"}; > diff --git a/src/log/apitest/tet_Log_recov.c b/src/log/apitest/tet_Log_recov.c > index 8b406872a..9d785d938 100644 > --- a/src/log/apitest/tet_Log_recov.c > +++ b/src/log/apitest/tet_Log_recov.c > @@ -328,7 +328,7 @@ done: > > /** > * Initialize the log API > - * For API version see GLOBAL logVersion > + * For API version see GLOBAL KLogVersion > * No callback > * > * @param logHandle [out] > @@ -339,6 +339,7 @@ static SaAisErrorT tst_LogInitialize(SaLogHandleT > *log_handle, int trycnt_max) > { > int trycnt = 0; > SaAisErrorT ais_rc = SA_AIS_OK; > + SaVersionT log_version = KLogVersion; > > /* Prepare callback */ > logCallbacks.saLogWriteLogCallback = log_write_callback; > @@ -348,7 +349,7 @@ static SaAisErrorT tst_LogInitialize(SaLogHandleT > *log_handle, int trycnt_max) > do { > /* Try again loop. If other error end loop */ > ais_rc = saLogInitialize(log_handle, &logCallbacks, > - &logVersion); > + &log_version); > if (ais_rc != SA_AIS_ERR_TRY_AGAIN) { > break; > } > @@ -357,10 +358,11 @@ static SaAisErrorT tst_LogInitialize(SaLogHandleT > *log_handle, int trycnt_max) > /* Give up try again */ > break; > } > + log_version = KLogVersion; > } while (ais_rc != SA_AIS_OK); > } else { > ais_rc = > - saLogInitialize(log_handle, &logCallbacks, &logVersion); > + saLogInitialize(log_handle, &logCallbacks, &log_version); > } > > return ais_rc; > @@ -1768,6 +1770,7 @@ void saLogRecov_openRtStream(void) > SaConstStringT data = "safLgStr=rtCleanup"; > saAisNameLend(data, &logStreamName); > SaLogFileCreateAttributesT_2 appLogFileCreateAttributes; > + SaVersionT log_version = KLogVersion; > > /* Cleanup the test directory */ > sprintf(command, "rm -rf %s/logtest_rtStream_cleanup", > log_root_path); > @@ -1786,7 +1789,7 @@ void saLogRecov_openRtStream(void) > appLogFileCreateAttributes.maxFilesRotated = 4; > appLogFileCreateAttributes.logFileFmt = NULL; > > - rc = saLogInitialize(&logHandleRecv, &logCallbacks, &logVersion); > + rc = saLogInitialize(&logHandleRecv, &logCallbacks, &log_version); > if (rc != SA_AIS_OK) { > fprintf(stderr, "Failed at saLogInitialize: %d\n ", (int)rc); > test_validate(rc, SA_AIS_OK); > diff --git a/src/log/apitest/tet_log_longDN.c > b/src/log/apitest/tet_log_longDN.c > index c6474f2e3..45e100d10 100644 > --- a/src/log/apitest/tet_log_longDN.c > +++ b/src/log/apitest/tet_log_longDN.c > @@ -84,9 +84,9 @@ static SaNameT notifyingObjLd; > static SaNameT logStreamNameLd; > static SaLogBufferT logBufferLd; > static SaNtfClassIdT notificationClassIdLd = {1, 2, 3}; > -static SaVersionT logVersionLd = {'A', 2, 3}; > static SaInvocationT invocationLd; > static SaAisErrorT errorLd; > +const SaVersionT logVersionLd = {'A', 2, 3}; > > /* Try for 10 seconds before giving up on an API */ > #define TEN_SECONDS 10 * 1000 * 1000 > @@ -447,13 +447,15 @@ static SaAisErrorT initLog(void) > { > SaAisErrorT error; > unsigned int wait_time = 0; > + SaVersionT log_version = logVersionLd; > > - error = saLogInitialize(&logHandleLd, &logCallbacksLd, > &logVersionLd); > + error = saLogInitialize(&logHandleLd, &logCallbacksLd, &log_version); > while (error == SA_AIS_ERR_TRY_AGAIN && wait_time < > TEN_SECONDS) { > usleep(HUNDRED_MS); > wait_time += HUNDRED_MS; > + log_version = logVersionLd; > error = saLogInitialize(&logHandleLd, &logCallbacksLd, > - &logVersionLd); > + &log_version); > } > > return error; > diff --git a/src/log/apitest/tet_log_runtime_cfgobj.c > b/src/log/apitest/tet_log_runtime_cfgobj.c > index 0d7a682a3..628e42359 100644 > --- a/src/log/apitest/tet_log_runtime_cfgobj.c > +++ b/src/log/apitest/tet_log_runtime_cfgobj.c > @@ -22,7 +22,6 @@ > #include "base/saf_error.h" > #include "osaf/immutil/immutil.h" > > -static SaVersionT immVersion = {'A', 2, 11}; > > /** > * Log configuration config obj <=> runtime obj > @@ -42,9 +41,10 @@ void log_rt_cf_obj_compare(void) > uint32_t c_cnt = 0; > SaAisErrorT ais_rc = SA_AIS_OK; > int tst_res = 0; /* Test result: 0 = PASS */ > + SaVersionT imm_version = KImmVersion; > > /* NOTE: immutil will osaf_assert if error */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, > &imm_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Count attributes in configuration object > diff --git a/src/log/apitest/tet_multiple_thread.c > b/src/log/apitest/tet_multiple_thread.c > index b45b5739b..1b445f9ca 100644 > --- a/src/log/apitest/tet_multiple_thread.c > +++ b/src/log/apitest/tet_multiple_thread.c > @@ -156,12 +156,14 @@ void *create_and_close_log_handle(void > *thread_num) > { > SaAisErrorT rc_me = SA_AIS_OK; > unsigned int nTries = 1; > + SaVersionT log_version = KLogVersion; > > - rc_me = saLogInitialize(&logHandle_me, &logCallbacks, &logVersion); > + rc_me = saLogInitialize(&logHandle_me, &logCallbacks, > &log_version); > while (rc_me == SA_AIS_ERR_TRY_AGAIN && nTries < 50) { > usleep(100 * 1000); > + log_version = KLogVersion; > rc_me = > - saLogInitialize(&logHandle_me, &logCallbacks, > &logVersion); > + saLogInitialize(&logHandle_me, &logCallbacks, > &log_version); > nTries++; > } > if (rc_me != SA_AIS_OK) { > diff --git a/src/log/apitest/tet_saLogFilterSetCallbackT.c > b/src/log/apitest/tet_saLogFilterSetCallbackT.c > index 61ee89cd0..8d1ae212f 100644 > --- a/src/log/apitest/tet_saLogFilterSetCallbackT.c > +++ b/src/log/apitest/tet_saLogFilterSetCallbackT.c > @@ -191,9 +191,10 @@ void saLogFilterSetCallbackT_03(void) > const unsigned int serverity_filter[2] = {7, 15}; > SaUint32T v_saLogStreamSeverityFilter = 127; > SaLogStreamHandleT logStreamHandle[2]; > + SaVersionT log_version = KLogVersion; > > logCallbacks.saLogFilterSetCallback = logFilterSetCallbackT; > - rc = saLogInitialize(&logHandle, &logCallbacks, &logVersion); > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > if (rc != SA_AIS_OK) { > test_validate(rc, SA_AIS_OK); > return; > @@ -305,10 +306,13 @@ void saLogFilterSetCallbackT_04(void) > SaLogStreamHandleT logStreamHandle[MAX_CLIENTS]; > SaLogHandleT logHandle[MAX_CLIENTS]; > SaSelectionObjectT selectionObject[MAX_CLIENTS]; > + SaVersionT log_version; > > logCallbacks.saLogFilterSetCallback = logFilterSetCallbackT; > for (int i = 0; i < MAX_CLIENTS; i++) { > - rc = saLogInitialize(&logHandle[i], &logCallbacks, > &logVersion); > + log_version = KLogVersion; > + rc = > + saLogInitialize(&logHandle[i], &logCallbacks, &log_version); > if (rc != SA_AIS_OK) { > test_validate(rc, SA_AIS_OK); > return; > diff --git a/src/log/apitest/tet_saLogInitialize.c > b/src/log/apitest/tet_saLogInitialize.c > index c37c078d0..5deaaaa54 100644 > --- a/src/log/apitest/tet_saLogInitialize.c > +++ b/src/log/apitest/tet_saLogInitialize.c > @@ -20,20 +20,23 @@ > > void saLogInitialize_01(void) > { > - rc = saLogInitialize(&logHandle, &logCallbacks, &logVersion); > + SaVersionT log_version = KLogVersion; > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > logFinalize(); > test_validate(rc, SA_AIS_OK); > } > > void saLogInitialize_02(void) > { > - rc = saLogInitialize(NULL, &logCallbacks, &logVersion); > + SaVersionT log_version = KLogVersion; > + rc = saLogInitialize(NULL, &logCallbacks, &log_version); > test_validate(rc, SA_AIS_ERR_INVALID_PARAM); > } > > void saLogInitialize_03(void) > { > - rc = saLogInitialize(&logHandle, NULL, &logVersion); > + SaVersionT log_version = KLogVersion; > + rc = saLogInitialize(&logHandle, NULL, &log_version); > logFinalize(); > test_validate(rc, SA_AIS_OK); > } > @@ -46,49 +49,50 @@ void saLogInitialize_04(void) > > void saLogInitialize_05(void) > { > - rc = saLogInitialize(0, &logCallbacks, &logVersion); > + SaVersionT log_version = KLogVersion; > + rc = saLogInitialize(0, &logCallbacks, &log_version); > test_validate(rc, SA_AIS_ERR_INVALID_PARAM); > } > > void saLogInitialize_06(void) > { > - SaVersionT version = {0, 0, 0}; > + SaVersionT log_version = {0, 0, 0}; > > - rc = saLogInitialize(&logHandle, &logCallbacks, &version); > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > test_validate(rc, SA_AIS_ERR_VERSION); > } > > void saLogInitialize_07(void) > { > - SaVersionT version = {'B', 1, 1}; > + SaVersionT log_version = {'B', 1, 1}; > > - rc = saLogInitialize(&logHandle, &logCallbacks, &version); > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > test_validate(rc, SA_AIS_ERR_VERSION); > } > > void saLogInitialize_08(void) > { > - SaVersionT version = {'A', 2, 1}; > + SaVersionT log_version = {'A', 2, 1}; > > - rc = saLogInitialize(&logHandle, &logCallbacks, &version); > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > logFinalize(); > test_validate(rc, SA_AIS_OK); > } > > void saLogInitialize_09(void) > { > - SaVersionT version = {'A', 3, 0}; > + SaVersionT log_version = {'A', 3, 0}; > > - rc = saLogInitialize(&logHandle, &logCallbacks, &version); > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > test_validate(rc, SA_AIS_ERR_VERSION); > } > > void saLogInitialize_10(void) > { > - SaVersionT version = logVersion; > + SaVersionT log_version = KLogVersion; > > - version.minorVersion = logVersion.minorVersion + 1; > - rc = saLogInitialize(&logHandle, &logCallbacks, &version); > + log_version.minorVersion += 1; > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > logFinalize(); > > test_validate(rc, SA_AIS_ERR_VERSION); > @@ -96,9 +100,9 @@ void saLogInitialize_10(void) > > void saLogInitialize_11(void) > { > - SaVersionT version = {'A', 2}; > + SaVersionT log_version = {'A', 2}; > > - rc = saLogInitialize(&logHandle, &logCallbacks, &version); > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > logFinalize(); > > test_validate(rc, SA_AIS_OK); > diff --git a/src/log/apitest/tet_saLogStreamOpen_2.c > b/src/log/apitest/tet_saLogStreamOpen_2.c > index 42e0e70c9..641b1036e 100644 > --- a/src/log/apitest/tet_saLogStreamOpen_2.c > +++ b/src/log/apitest/tet_saLogStreamOpen_2.c > @@ -859,11 +859,13 @@ void *saLogInitialize_1(void *arg) > SaLogStreamHandleT logStreamHandle1; > SaLogHandleT logHandle1; > int time_wait = 10*1000; // Wait for timeout is 10 seconds > + SaVersionT log_version; > > struct timespec timeout_time; > osaf_set_millis_timeout(time_wait, &timeout_time); > while (!osaf_is_timeout(&timeout_time)) { > - *rt = saLogInitialize(&logHandle1, &logCallbacks, > &logVersion); > + log_version = KLogVersion; > + *rt = saLogInitialize(&logHandle1, &logCallbacks, > &log_version); > if (*rt != SA_AIS_ERR_TRY_AGAIN) > break; > osaf_nanosleep(&kHundredMilliseconds); > @@ -995,9 +997,10 @@ void saLogStreamOpen_BadOp(void) > SaAisErrorT rc; > char command[1000]; > int loop; > + SaVersionT log_version = KLogVersion; > > cond_check(); > - rc = saLogInitialize(&logHandle, &logCallbacks, &logVersion); > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > if (rc != SA_AIS_OK) { > fprintf(stderr, "Failed at saLogInitialize: %d \n", (int)rc); > test_validate(rc, SA_AIS_OK); > @@ -1048,9 +1051,10 @@ void saLogStreamClose_BadOp(void) > SaAisErrorT rc; > char command[1000]; > int loop; > + SaVersionT log_version = KLogVersion; > > cond_check(); > - rc = saLogInitialize(&logHandle, &logCallbacks, &logVersion); > + rc = saLogInitialize(&logHandle, &logCallbacks, &log_version); > if (rc != SA_AIS_OK) { > fprintf(stderr, "Failed at saLogInitialize: %d \n", (int)rc); > test_validate(rc, SA_AIS_OK); > diff --git a/src/log/logd/lgs.h b/src/log/logd/lgs.h > index 8e1e4efa3..7ddb68ccd 100644 > --- a/src/log/logd/lgs.h > +++ b/src/log/logd/lgs.h > @@ -80,6 +80,8 @@ > 2 /* Store logs on local file system on \ > each node */ > > +const SaVersionT KImmVersion = {'A', 02, 11}; > + > /* > ========================================================== > ============== > * DATA DECLARATIONS > * > ========================================================== > ============== > diff --git a/src/log/logd/lgs_amf.cc b/src/log/logd/lgs_amf.cc > index d62be99a2..25eedc25b 100644 > --- a/src/log/logd/lgs_amf.cc > +++ b/src/log/logd/lgs_amf.cc > @@ -457,10 +457,7 @@ SaAisErrorT lgs_amf_init(lgs_cb_t *cb) { > amfCallbacks.saAmfComponentTerminateCallback = > amf_comp_terminate_callback; > amfCallbacks.saAmfCSIRemoveCallback = amf_csi_rmv_callback; > > - amf_version.releaseCode = 'B'; > - amf_version.majorVersion = 0x01; > - amf_version.minorVersion = 0x01; > - > + amf_version = {'B', 0x01, 0x01}; > /* Initialize the AMF library */ > error = saAmfInitialize(&cb->amf_hdl, &amfCallbacks, &amf_version); > if (error != SA_AIS_OK) { > diff --git a/src/log/logd/lgs_clm.cc b/src/log/logd/lgs_clm.cc > index 87aba0e47..2e2859257 100644 > --- a/src/log/logd/lgs_clm.cc > +++ b/src/log/logd/lgs_clm.cc > @@ -24,6 +24,7 @@ > static bool clm_initialized; > static void *clm_node_db = NULL; /* used for C++ STL map */ > typedef std::map<NODE_ID, lgs_clm_node_t *> ClmNodeMap; > +const SaVersionT KClmVersion = {'B', 0x04, 0x01}; > > /** > * @brief Checks if LGSV has already initialized with CLM service. > @@ -330,13 +331,13 @@ static const SaClmCallbacksT_4 clm_callbacks = {0, > lgs_clm_track_cbk}; > * @return SaAisErrorT > */ > void *lgs_clm_init_thread(void *cb) { > - static SaVersionT clmVersion = {'B', 0x04, 0x01}; > lgs_cb_t *_lgs_cb = reinterpret_cast<lgs_cb_t *>(cb); > SaAisErrorT rc; > > TRACE_ENTER(); > > - rc = saClmInitialize_4(&_lgs_cb->clm_hdl, &clm_callbacks, &clmVersion); > + SaVersionT clm_version = KClmVersion; > + rc = saClmInitialize_4(&_lgs_cb->clm_hdl, &clm_callbacks, &clm_version); > while ((rc == SA_AIS_ERR_TRY_AGAIN) || (rc == SA_AIS_ERR_TIMEOUT) || > (rc == SA_AIS_ERR_UNAVAILABLE)) { > if (_lgs_cb->clm_hdl != 0) { > @@ -345,7 +346,8 @@ void *lgs_clm_init_thread(void *cb) { > } > > base::Sleep(base::kOneHundredMilliseconds); > - rc = saClmInitialize_4(&_lgs_cb->clm_hdl, &clm_callbacks, &clmVersion); > + clm_version = KClmVersion; > + rc = saClmInitialize_4(&_lgs_cb->clm_hdl, &clm_callbacks, &clm_version); > } > if (rc != SA_AIS_OK) { > LOG_ER("saClmInitialize failed with error: %d", rc); > diff --git a/src/log/logd/lgs_config.cc b/src/log/logd/lgs_config.cc > index aec7204f6..ad773d8f0 100644 > --- a/src/log/logd/lgs_config.cc > +++ b/src/log/logd/lgs_config.cc > @@ -42,7 +42,6 @@ > #include "log/logd/lgs.h" > #include "log/logd/lgs_common.h" > > -static SaVersionT immVersion = {'A', 2, 11}; > > /* Mutex for making read and write of configuration data thread safe */ > pthread_mutex_t lgs_config_data_mutex = PTHREAD_MUTEX_INITIALIZER; > @@ -976,6 +975,7 @@ static void read_logsv_config_obj_2() { > SaImmAccessorHandleT accessorHandle; > SaImmAttrValuesT_2 *attribute; > SaImmAttrValuesT_2 **attributes; > + SaVersionT imm_version = KImmVersion; > int i = 0; > int n; > > @@ -983,7 +983,7 @@ static void read_logsv_config_obj_2() { > > /* NOTE: immutil init will osaf_assert if error */ > SaAisErrorT om_rc = > - immutil_saImmOmInitialize(&omHandle, nullptr, &immVersion); > + immutil_saImmOmInitialize(&omHandle, nullptr, &imm_version); > if (om_rc != SA_AIS_OK) { > LOG_ER("immutil_saImmOmInitialize failed: %s", saf_error(om_rc)); > osaf_abort(0); > diff --git a/src/log/logd/lgs_imm.cc b/src/log/logd/lgs_imm.cc > index 605024fb7..49dd49bce 100644 > --- a/src/log/logd/lgs_imm.cc > +++ b/src/log/logd/lgs_imm.cc > @@ -75,8 +75,6 @@ static const char *log_file_format[] = { > DEFAULT_ALM_NOT_FORMAT_EXP, DEFAULT_ALM_NOT_FORMAT_EXP, > DEFAULT_APP_SYS_FORMAT_EXP, DEFAULT_APP_SYS_FORMAT_EXP}; > > -static SaVersionT immVersion = {'A', 2, 11}; > - > static const SaImmOiImplementerNameT implementerName = > const_cast<SaImmOiImplementerNameT>("safLogService"); > static const SaImmClassNameT logConfig_str = > @@ -977,7 +975,8 @@ static lgs_stream_defval_t > *get_SaLogStreamConfig_default() { > * We are only interested in saLogStreamMaxLogFileSize and > * saLogStreamFixedLogRecordSize > */ > - rc = immutil_saImmOmInitialize(&om_handle, NULL, &immVersion); > + SaVersionT imm_version = KImmVersion; > + rc = immutil_saImmOmInitialize(&om_handle, NULL, &imm_version); > if (rc != SA_AIS_OK) { > TRACE("immutil_saImmOmInitialize fail rc=%d", rc); > } > @@ -2884,7 +2883,7 @@ SaAisErrorT lgs_imm_init_configStreams(lgs_cb_t > *cb) { > int int_rc = 0; > log_stream_t *stream; > SaImmHandleT omHandle; > - SaVersionT immVersion = {'A', 2, 1}; > + SaVersionT imm_version = KImmVersion; > SaImmSearchHandleT immSearchHandle; > SaImmSearchParametersT_2 objectSearch; > SaImmAttrValuesT_2 **attributes; > @@ -2897,7 +2896,7 @@ SaAisErrorT lgs_imm_init_configStreams(lgs_cb_t > *cb) { > SaBoolT endloop = SA_FALSE, jstart = SA_TRUE; > TRACE_ENTER(); > > - om_rc = immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); > + om_rc = immutil_saImmOmInitialize(&omHandle, NULL, &imm_version); > if (om_rc != SA_AIS_OK) { > LOG_ER("immutil_saImmOmInitialize failed %s", saf_error(om_rc)); > osaf_abort(0); > @@ -3038,16 +3037,18 @@ void lgs_imm_init_OI_handle(SaImmOiHandleT > *immOiHandle, > SaSelectionObjectT *immSelectionObject) { > SaAisErrorT rc; > uint32_t msecs_waited = 0; > + SaVersionT imm_version = KImmVersion; > > TRACE_ENTER(); > > /* Initialize IMM OI service */ > - rc = saImmOiInitialize_2(immOiHandle, &callbacks, &immVersion); > + rc = saImmOiInitialize_2(immOiHandle, &callbacks, &imm_version); > while ((rc == SA_AIS_ERR_TRY_AGAIN) && > (msecs_waited < max_waiting_time_60s)) { > usleep(sleep_delay_ms * 1000); > msecs_waited += sleep_delay_ms; > - rc = saImmOiInitialize_2(immOiHandle, &callbacks, &immVersion); > + imm_version = KImmVersion; > + rc = saImmOiInitialize_2(immOiHandle, &callbacks, &imm_version); > } > if (rc != SA_AIS_OK) { > lgs_exit("saImmOiInitialize_2 failed", SA_AMF_COMPONENT_RESTART); > @@ -3289,12 +3290,13 @@ void lgs_search_stream_objects() { > SaImmHandleT immOmHandle; > SaImmSearchHandleT immSearchHandle; > const char *class_name = "SaLogStream"; > + SaVersionT imm_version = KImmVersion; > > TRACE_ENTER(); > > /* Intialize Om API > */ > - ais_rc = immutil_saImmOmInitialize(&immOmHandle, NULL, > &immVersion); > + ais_rc = immutil_saImmOmInitialize(&immOmHandle, NULL, > &imm_version); > if (ais_rc != SA_AIS_OK) { > LOG_WA("%s saImmOmInitialize FAIL %d", __FUNCTION__, ais_rc); > goto done; > @@ -3457,6 +3459,7 @@ int lgs_get_streamobj_attr(SaImmAttrValuesT_2 > ***attrib_out, > SaImmHandleT *immOmHandle) { > int rc = 0; > SaAisErrorT ais_rc = SA_AIS_OK; > + SaVersionT imm_version = KImmVersion; > SaImmAccessorHandleT accessorHandle; > char *attribute_names[] = { > const_cast<char *>("saLogStreamFileName"), > @@ -3482,7 +3485,7 @@ int lgs_get_streamobj_attr(SaImmAttrValuesT_2 > ***attrib_out, > > /* Initialize Om API > */ > - ais_rc = immutil_saImmOmInitialize(immOmHandle, NULL, &immVersion); > + ais_rc = immutil_saImmOmInitialize(immOmHandle, NULL, > &imm_version); > if (ais_rc != SA_AIS_OK) { > LOG_WA("\t%s saImmOmInitialize FAIL %d", __FUNCTION__, ais_rc); > rc = -1; > @@ -3559,6 +3562,7 @@ int lgs_free_streamobj_attr(SaImmHandleT > immOmHandle) { > SaUint32T *lgs_get_scAbsenceAllowed_attr(SaUint32T *attr_val) { > SaUint32T *rc_attr_val = NULL; > SaAisErrorT ais_rc = SA_AIS_OK; > + SaVersionT imm_version = KImmVersion; > SaImmAccessorHandleT accessorHandle; > SaImmHandleT immOmHandle; > SaImmAttrValuesT_2 *attribute; > @@ -3578,7 +3582,7 @@ SaUint32T > *lgs_get_scAbsenceAllowed_attr(SaUint32T *attr_val) { > > /* Initialize Om API > */ > - ais_rc = immutil_saImmOmInitialize(&immOmHandle, NULL, > &immVersion); > + ais_rc = immutil_saImmOmInitialize(&immOmHandle, NULL, > &imm_version); > if (ais_rc != SA_AIS_OK) { > LOG_WA("\t%s saImmOmInitialize FAIL %d", __FUNCTION__, ais_rc); > goto done; > diff --git a/src/log/logd/lgs_imm_gcfg.cc b/src/log/logd/lgs_imm_gcfg.cc > index 4c6b91f28..38131f28a 100644 > --- a/src/log/logd/lgs_imm_gcfg.cc > +++ b/src/log/logd/lgs_imm_gcfg.cc > @@ -27,6 +27,7 @@ > #include "base/logtrace.h" > #include <saImmOi.h> > #include <saImmOm.h> > +#include "log/logd/lgs.h" > #include "osaf/immutil/immutil.h" > #include "base/osaf_time.h" > #include "base/osaf_poll.h" > @@ -74,8 +75,6 @@ static const SaImmClassNameT gcfg_class = > const_cast<SaImmClassNameT>("OpensafConfig"); > static const SaImmOiImplementerNameT applier_name = > const_cast<SaImmOiImplementerNameT>("@safLogService_appl"); > -/* IMM handling */ > -static SaVersionT immVersion = {'A', 2, 11}; > > /* Network name handling */ > static char *network_name = NULL; /* Save pointer to current name */ > @@ -573,6 +572,8 @@ static int read_network_name() { > SaImmAttrValuesT_2 **attributes; > SaImmAttrValuesT_2 *attribute; > void *value = NULL; > + SaVersionT imm_version = KImmVersion; > + > /* Setup search initialize parameters */ > SaImmSearchHandleT searchHandle; > SaImmSearchParametersT_2 searchParam; > @@ -589,7 +590,7 @@ static int read_network_name() { > /* > * Initialize an IMM object manager > */ > - ais_rc = immutil_saImmOmInitialize(&om_handle, NULL, &immVersion); > + ais_rc = immutil_saImmOmInitialize(&om_handle, NULL, &imm_version); > if (ais_rc != SA_AIS_OK) { > TRACE("immutil_saImmOmInitialize FAIL %s", saf_error(ais_rc)); > rc = -1; > @@ -686,6 +687,7 @@ static int applier_init(SaImmOiHandleT > *imm_appl_hdl, > SaSelectionObjectT *imm_appl_selobj) { > SaAisErrorT ais_rc = SA_AIS_OK; > int rc = 0; > + SaVersionT imm_version = KImmVersion; > > TRACE_ENTER(); > > @@ -705,7 +707,7 @@ static int applier_init(SaImmOiHandleT > *imm_appl_hdl, > } > > /* Initialize OI for applier and get OI handle */ > - ais_rc = immutil_saImmOiInitialize_2(imm_appl_hdl, &callbacks, > &immVersion); > + ais_rc = immutil_saImmOiInitialize_2(imm_appl_hdl, &callbacks, > &imm_version); > if (ais_rc != SA_AIS_OK) { > LOG_WA("immutil_saImmOiInitialize_2 Failed %s", saf_error(ais_rc)); > rc = -1; > diff --git a/src/log/tools/saf_logger.c b/src/log/tools/saf_logger.c > index 1b898d06e..4a70e955a 100644 > --- a/src/log/tools/saf_logger.c > +++ b/src/log/tools/saf_logger.c > @@ -59,12 +59,13 @@ > static void logWriteLogCallbackT(SaInvocationT invocation, SaAisErrorT > error); > > static SaLogCallbacksT logCallbacks = {0, 0, logWriteLogCallbackT}; > -static SaVersionT logVersion = {'A', 2, 3}; > > static char *progname = "saflogger"; > static SaInvocationT cb_invocation; > static SaAisErrorT cb_error; > > +const SaVersionT KLogVersion = {'A', 2, 3}; > + > static SaTimeT get_current_SaTime(void) > { > struct timeval tv; > @@ -461,11 +462,14 @@ int main(int argc, char *argv[]) > } > > wait_time = 0; > - error = saLogInitialize(&logHandle, &logCallbacks, &logVersion); > + SaVersionT log_version = KLogVersion; > + error = saLogInitialize(&logHandle, &logCallbacks, &log_version); > while (error == SA_AIS_ERR_TRY_AGAIN && wait_time < > TEN_SECONDS) { > usleep(HUNDRED_MS); > wait_time += HUNDRED_MS; > - error = saLogInitialize(&logHandle, &logCallbacks, > &logVersion); > + log_version = KLogVersion; > + error = > + saLogInitialize(&logHandle, &logCallbacks, &log_version); > } > > if (error != SA_AIS_OK) { > -- > 2.13.0
log_2516_review_comments.diff
Description: log_2516_review_comments.diff
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
