Hi, Do you have any comments on this patch? Thanks.
Regards, Vu > -----Original Message----- > From: Vu Minh Nguyen [mailto:[email protected]] > Sent: Thursday, April 5, 2018 5:39 PM > To: [email protected]; [email protected]; > [email protected]; [email protected] > Cc: [email protected]; Vu Minh Nguyen > <[email protected]> > Subject: [PATCH 1/1] imm: make version parameter in immutil_xxx non-const > [#2830] > > The version in saImmO{m,i}Initialize is input/output parameter and is > declared > as non-constant for both IMM OM and OI API according to SAF spec. > But in immutil wrapper library, some are declared as constant and don't > update > the in/out version before returning from such wrappers. > > This patch makes that parameter non-const and do update the version > before returning from wrapper APIs. Also fix the wrong usage of > these wrapper, passed const version, in some services/applications. > --- > src/amf/amfd/imm.cc | 11 +++++++---- > src/amf/amfnd/util.cc | 3 ++- > src/log/apitest/imm_tstutil.c | 5 ++++- > src/log/apitest/logtest.c | 9 ++++++--- > src/log/apitest/logtestfr.c | 6 ++++-- > src/log/apitest/tet_log_runtime_cfgobj.c | 3 ++- > src/log/logd/lgs_config.cc | 3 ++- > src/log/logd/lgs_imm.cc | 15 ++++++++++----- > src/log/logd/lgs_imm_gcfg.cc | 7 +++++-- > src/osaf/immutil/immutil.c | 20 +++++++++++++++----- > src/osaf/immutil/immutil.h | 6 +++--- > src/smf/smfd/SmfAdminState.cc | 4 ++-- > src/smf/smfd/SmfExecControlHdl.cc | 3 ++- > 13 files changed, 64 insertions(+), 31 deletions(-) > > diff --git a/src/amf/amfd/imm.cc b/src/amf/amfd/imm.cc > index 47c0e5a..8c70325 100644 > --- a/src/amf/amfd/imm.cc > +++ b/src/amf/amfd/imm.cc > @@ -1461,6 +1461,7 @@ done: > SaAisErrorT avd_imm_init(void *avd_cb) { > SaAisErrorT error = SA_AIS_OK; > AVD_CL_CB *cb = (AVD_CL_CB *)avd_cb; > + SaVersionT local_version = immVersion; > > TRACE_ENTER(); > > @@ -1471,13 +1472,13 @@ SaAisErrorT avd_imm_init(void *avd_cb) { > > cb->avd_imm_status = AVD_IMM_INIT_ONGOING; > if ((error = immutil_saImmOiInitialize_2(&cb->immOiHandle, > &avd_callbacks, > - &immVersion)) != SA_AIS_OK) { > + &local_version)) != SA_AIS_OK) { > LOG_ER("saImmOiInitialize failed %u", error); > goto done; > } > > if ((error = immutil_saImmOmInitialize(&cb->immOmHandle, nullptr, > - &immVersion)) != SA_AIS_OK) { > + &local_version)) != SA_AIS_OK) { > LOG_ER("saImmOmInitialize failed %u", error); > goto done; > } > @@ -2075,6 +2076,7 @@ void avd_imm_update_runtime_attrs(void) { > */ > static void *avd_imm_reinit_bg_thread(void *_cb) { > SaAisErrorT rc = SA_AIS_OK; > + SaVersionT local_version; > AVD_CL_CB *cb = (AVD_CL_CB *)_cb; > AVD_EVT *evt; > uint32_t status; > @@ -2098,9 +2100,10 @@ static void *avd_imm_reinit_bg_thread(void > *_cb) { > > avd_cb->immOiHandle = 0; > avd_cb->is_implementer = false; > + local_version = immVersion; > > if ((rc = immutil_saImmOiInitialize_2(&cb->immOiHandle, &avd_callbacks, > - &immVersion)) != SA_AIS_OK) { > + &local_version)) != SA_AIS_OK) { > LOG_ER("saImmOiInitialize failed %u", rc); > osaf_mutex_unlock_ordie(&imm_reinit_mutex); > exit(EXIT_FAILURE); > @@ -2141,7 +2144,7 @@ static void *avd_imm_reinit_bg_thread(void *_cb) > { > /* Lets re-initialize Om interface also. */ > (void)immutil_saImmOmFinalize(cb->immOmHandle); > if ((rc = immutil_saImmOmInitialize(&cb->immOmHandle, nullptr, > - &immVersion)) != SA_AIS_OK) { > + &local_version)) != SA_AIS_OK) { > LOG_ER("saImmOmInitialize failed %u", rc); > continue; > } > diff --git a/src/amf/amfnd/util.cc b/src/amf/amfnd/util.cc > index f6dbb49..38bf426 100644 > --- a/src/amf/amfnd/util.cc > +++ b/src/amf/amfnd/util.cc > @@ -250,8 +250,9 @@ const char *avnd_failed_state_file_location(void) { > SaAisErrorT saImmOmInitialize_cond(SaImmHandleT *immHandle, > const SaImmCallbacksT *immCallbacks, > const SaVersionT *version) { > + SaVersionT local_version = *version; > if (avnd_cb->scs_absence_max_duration == 0) { > - return immutil_saImmOmInitialize(immHandle, immCallbacks, version); > + return immutil_saImmOmInitialize(immHandle, immCallbacks, > &local_version); > } > > SaVersionT localVer = *version; > diff --git a/src/log/apitest/imm_tstutil.c b/src/log/apitest/imm_tstutil.c > index 194dffa..2143f83 100644 > --- a/src/log/apitest/imm_tstutil.c > +++ b/src/log/apitest/imm_tstutil.c > @@ -32,6 +32,7 @@ bool > get_multivalue_type_string_from_imm(SaImmHandleT *omHandle, > { > SaAisErrorT om_rc = SA_AIS_OK; > SaImmAccessorHandleT accessorHandle; > + SaVersionT local_version; > SaImmAttrValuesT_2 *attribute; > SaImmAttrValuesT_2 **attributes; > bool func_rc = true; > @@ -39,10 +40,12 @@ bool > get_multivalue_type_string_from_imm(SaImmHandleT *omHandle, > // printf(">> get_multivalue_string_type_from_imm()\n"); > > do { > + local_version = kImmVersion; > /* Make sure this is a NULL pointer if no values are found */ > *multivalue_array = NULL; > > - om_rc = immutil_saImmOmInitialize(omHandle, NULL, > &kImmVersion); > + om_rc = immutil_saImmOmInitialize(omHandle, NULL, > + &local_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 f8fe135..aabd1e5 100644 > --- a/src/log/apitest/logtest.c > +++ b/src/log/apitest/logtest.c > @@ -102,6 +102,7 @@ void init_logrootpath(void) > SaImmHandleT omHandle; > SaConstStringT config = "logConfig=1,safApp=safLogService"; > SaNameT objectName; > + SaVersionT local_version = kImmVersion; > SaImmAccessorHandleT accessorHandle; > SaImmAttrValuesT_2 *attribute; > SaImmAttrValuesT_2 **attributes; > @@ -112,7 +113,7 @@ void init_logrootpath(void) > > saAisNameLend(config, &objectName); > /* NOTE: immutil init osaf_assert if error */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &kImmVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, &local_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get all attributes of the object */ > @@ -140,6 +141,7 @@ int get_attr_value(SaNameT *inObjName, char > *inAttr, void *outValue) > { > SaImmHandleT omHandle; > SaImmAccessorHandleT accessorHandle; > + SaVersionT local_version = kImmVersion; > SaImmAttrValuesT_2 *attribute = NULL; > SaImmAttrValuesT_2 **attributes; > SaAisErrorT ais_rc = SA_AIS_OK; > @@ -147,7 +149,7 @@ int get_attr_value(SaNameT *inObjName, char > *inAttr, void *outValue) > int rc = 0; > > /* NOTE: immutil init osaf_assert if error */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &kImmVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, &local_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get all attributes of the object */ > @@ -286,6 +288,7 @@ int get_active_sc(void) > SaImmHandleT omHandle; > SaConstStringT objname = "safSu=SC-1,safSg=2N,safApp=OpenSAF"; > SaNameT objectName1; > + SaVersionT local_version = kImmVersion; > SaImmAccessorHandleT accessorHandle; > SaImmAttrValuesT_2 **attributes; > const char saAmfSUNumCurrActiveSIs[] = > "saAmfSUNumCurrActiveSIs"; > @@ -296,7 +299,7 @@ int get_active_sc(void) > saAisNameLend(objname, &objectName1); > /* NOTE: immutil init osaf_assert if error > */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &kImmVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, &local_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get attributes of the object > diff --git a/src/log/apitest/logtestfr.c b/src/log/apitest/logtestfr.c > index b2ef30b..a110240 100644 > --- a/src/log/apitest/logtestfr.c > +++ b/src/log/apitest/logtestfr.c > @@ -91,11 +91,12 @@ static int get_active_sc(void) > const char saAmfSUNumCurrActiveSIs[] = > "saAmfSUNumCurrActiveSIs"; > SaImmAttrNameT attributeNames[2] = {(char > *)saAmfSUNumCurrActiveSIs, > NULL}; > + SaVersionT local_version = kImmVersion; > SaUint32T curr_act_sis = 0; > > /* NOTE: immutil init osaf_assert if error > */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &kImmVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, &local_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get attributes of the object > @@ -191,9 +192,10 @@ void get_logRootDirectory(char *path_str) > const char logRootDirectory_name[] = "logRootDirectory"; > SaImmAttrNameT attributeNames[2] = {(char > *)logRootDirectory_name, > NULL}; > + SaVersionT local_version = kImmVersion; > > /* NOTE: immutil init osaf_assert if error */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &kImmVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, &local_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Get all attributes of the object */ > diff --git a/src/log/apitest/tet_log_runtime_cfgobj.c > b/src/log/apitest/tet_log_runtime_cfgobj.c > index 047296c..ae83e65 100644 > --- a/src/log/apitest/tet_log_runtime_cfgobj.c > +++ b/src/log/apitest/tet_log_runtime_cfgobj.c > @@ -37,13 +37,14 @@ void log_rt_cf_obj_compare(void) > SaNameT object_name; > SaImmAccessorHandleT accessorHandle; > SaImmAttrValuesT_2 **attributes; > + SaVersionT local_version = kImmVersion; > uint32_t r_cnt = 0; /* Counter for attributes in runtime object */ > uint32_t c_cnt = 0; > SaAisErrorT ais_rc = SA_AIS_OK; > int tst_res = 0; /* Test result: 0 = PASS */ > > /* NOTE: immutil will osaf_assert if error */ > - (void)immutil_saImmOmInitialize(&omHandle, NULL, &kImmVersion); > + (void)immutil_saImmOmInitialize(&omHandle, NULL, &local_version); > (void)immutil_saImmOmAccessorInitialize(omHandle, > &accessorHandle); > > /* Count attributes in configuration object > diff --git a/src/log/logd/lgs_config.cc b/src/log/logd/lgs_config.cc > index 4190e30..71d7318 100644 > --- a/src/log/logd/lgs_config.cc > +++ b/src/log/logd/lgs_config.cc > @@ -975,6 +975,7 @@ static void read_logsv_config_obj_2() { > SaImmAccessorHandleT accessorHandle; > SaImmAttrValuesT_2 *attribute; > SaImmAttrValuesT_2 **attributes; > + SaVersionT local_version = kImmVersion; > int i = 0; > int n; > > @@ -982,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, &kImmVersion); > + immutil_saImmOmInitialize(&omHandle, nullptr, &local_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 60870fa..f772dd5 100644 > --- a/src/log/logd/lgs_imm.cc > +++ b/src/log/logd/lgs_imm.cc > @@ -973,6 +973,7 @@ static lgs_stream_defval_t > *get_SaLogStreamConfig_default() { > SaImmClassCategoryT cc; > SaImmAttrDefinitionT_2 **attributes = NULL; > SaImmAttrDefinitionT_2 *attribute = NULL; > + SaVersionT local_version = kImmVersion; > > TRACE_ENTER(); > if (lgs_stream_defval_updated_flag == false) { > @@ -980,7 +981,7 @@ static lgs_stream_defval_t > *get_SaLogStreamConfig_default() { > * We are only interested in saLogStreamMaxLogFileSize and > * saLogStreamFixedLogRecordSize > */ > - rc = immutil_saImmOmInitialize(&om_handle, NULL, &kImmVersion); > + rc = immutil_saImmOmInitialize(&om_handle, NULL, &local_version); > if (rc != SA_AIS_OK) { > TRACE("immutil_saImmOmInitialize fail rc=%d", rc); > } > @@ -2908,6 +2909,7 @@ SaAisErrorT lgs_imm_init_configStreams(lgs_cb_t > *cb) { > SaImmSearchParametersT_2 objectSearch; > SaImmAttrValuesT_2 **attributes; > SaImmAttrDefinitionT_2** attr_definitions; > + SaVersionT local_version = kImmVersion; > int wellknownStreamId = 0; > int appStreamId = 3; > uint32_t streamId = 0; > @@ -2916,7 +2918,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, &kImmVersion); > + om_rc = immutil_saImmOmInitialize(&omHandle, NULL, &local_version); > if (om_rc != SA_AIS_OK) { > LOG_ER("immutil_saImmOmInitialize failed %s", saf_error(om_rc)); > osaf_abort(0); > @@ -3309,13 +3311,14 @@ void lgs_search_stream_objects() { > SaAisErrorT ais_rc = SA_AIS_OK; > SaImmHandleT immOmHandle; > SaImmSearchHandleT immSearchHandle; > + SaVersionT local_version = kImmVersion; > const char *class_name = "SaLogStream"; > > TRACE_ENTER(); > > /* Intialize Om API > */ > - ais_rc = immutil_saImmOmInitialize(&immOmHandle, NULL, > &kImmVersion); > + ais_rc = immutil_saImmOmInitialize(&immOmHandle, NULL, > &local_version); > if (ais_rc != SA_AIS_OK) { > LOG_WA("%s saImmOmInitialize FAIL %d", __FUNCTION__, ais_rc); > goto done; > @@ -3479,6 +3482,7 @@ int lgs_get_streamobj_attr(SaImmAttrValuesT_2 > ***attrib_out, > int rc = 0; > SaAisErrorT ais_rc = SA_AIS_OK; > SaImmAccessorHandleT accessorHandle; > + SaVersionT local_version = kImmVersion; > char *attribute_names[] = { > const_cast<char *>("saLogStreamFileName"), > const_cast<char *>("saLogStreamPathName"), > @@ -3503,7 +3507,7 @@ int lgs_get_streamobj_attr(SaImmAttrValuesT_2 > ***attrib_out, > > /* Initialize Om API > */ > - ais_rc = immutil_saImmOmInitialize(immOmHandle, NULL, &kImmVersion); > + ais_rc = immutil_saImmOmInitialize(immOmHandle, NULL, > &local_version); > if (ais_rc != SA_AIS_OK) { > LOG_WA("\t%s saImmOmInitialize FAIL %d", __FUNCTION__, ais_rc); > rc = -1; > @@ -3584,6 +3588,7 @@ SaUint32T > *lgs_get_scAbsenceAllowed_attr(SaUint32T *attr_val) { > SaImmHandleT immOmHandle; > SaImmAttrValuesT_2 *attribute; > SaImmAttrValuesT_2 **attributes; > + SaVersionT local_version = kImmVersion; > > TRACE_ENTER(); > char *attribute_names[] = {const_cast<char *>("scAbsenceAllowed"), > NULL}; > @@ -3599,7 +3604,7 @@ SaUint32T > *lgs_get_scAbsenceAllowed_attr(SaUint32T *attr_val) { > > /* Initialize Om API > */ > - ais_rc = immutil_saImmOmInitialize(&immOmHandle, NULL, > &kImmVersion); > + ais_rc = immutil_saImmOmInitialize(&immOmHandle, NULL, > &local_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 f7d59d1..64a5f3f 100644 > --- a/src/log/logd/lgs_imm_gcfg.cc > +++ b/src/log/logd/lgs_imm_gcfg.cc > @@ -571,6 +571,7 @@ static int read_network_name() { > SaNameT object_name; > SaImmAttrValuesT_2 **attributes; > SaImmAttrValuesT_2 *attribute; > + SaVersionT local_version = kImmVersion; > void *value = NULL; > > /* Setup search initialize parameters */ > @@ -589,7 +590,7 @@ static int read_network_name() { > /* > * Initialize an IMM object manager > */ > - ais_rc = immutil_saImmOmInitialize(&om_handle, NULL, &kImmVersion); > + ais_rc = immutil_saImmOmInitialize(&om_handle, NULL, &local_version); > if (ais_rc != SA_AIS_OK) { > TRACE("immutil_saImmOmInitialize FAIL %s", saf_error(ais_rc)); > rc = -1; > @@ -685,6 +686,7 @@ done: > static int applier_init(SaImmOiHandleT *imm_appl_hdl, > SaSelectionObjectT *imm_appl_selobj) { > SaAisErrorT ais_rc = SA_AIS_OK; > + SaVersionT local_version = kImmVersion; > int rc = 0; > > TRACE_ENTER(); > @@ -705,7 +707,8 @@ 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, > &kImmVersion); > + ais_rc = immutil_saImmOiInitialize_2(imm_appl_hdl, &callbacks, > + &local_version); > if (ais_rc != SA_AIS_OK) { > LOG_WA("immutil_saImmOiInitialize_2 Failed %s", saf_error(ais_rc)); > rc = -1; > diff --git a/src/osaf/immutil/immutil.c b/src/osaf/immutil/immutil.c > index 1add1d0..e10a8ff 100644 > --- a/src/osaf/immutil/immutil.c > +++ b/src/osaf/immutil/immutil.c > @@ -610,8 +610,9 @@ SaImmClassNameT immutil_get_className(const > SaNameT *objectName) > SaImmAccessorHandleT accessorHandle; > SaImmAttrValuesT_2 **attributes; > SaImmAttrNameT attributeNames[] = {"SaImmAttrClassName", > NULL}; > + SaVersionT localVer = immVersion; > > - if (immutil_saImmOmInitialize(&omHandle, NULL, &immVersion) != > + if (immutil_saImmOmInitialize(&omHandle, NULL, &localVer) != > SA_AIS_OK) > goto done; > if (immutil_saImmOmAccessorInitialize(omHandle, &accessorHandle) > != > @@ -639,9 +640,10 @@ SaAisErrorT immutil_get_attrValueType(const > SaImmClassNameT className, > SaImmClassCategoryT classCategory; > SaImmAttrDefinitionT_2 *attrDef; > SaImmAttrDefinitionT_2 **attrDefinitions; > + SaVersionT localVer = immVersion; > int i = 0; > > - if ((rc = immutil_saImmOmInitialize(&omHandle, NULL, > &immVersion)) != > + if ((rc = immutil_saImmOmInitialize(&omHandle, NULL, &localVer)) != > SA_AIS_OK) { > return rc; > } > @@ -1083,7 +1085,7 @@ struct ImmutilWrapperProfile > immutilWrapperProfile = {1, 25, 400}; > SaAisErrorT > immutil_saImmOiInitialize_2(SaImmOiHandleT *immOiHandle, > const SaImmOiCallbacksT_2 *immOiCallbacks, > - const SaVersionT *version) > + SaVersionT *version) > { > /* Version parameter is in/out i.e. must be mutable and should not be > re-used from previous call in a retry loop. */ > @@ -1100,6 +1102,8 @@ immutil_saImmOiInitialize_2(SaImmOiHandleT > *immOiHandle, > saImmOiInitialize_2(immOiHandle, immOiCallbacks, > &localVer); > nTries++; > } > + > + *version = localVer; > if (rc != SA_AIS_OK && immutilWrapperProfile.errorsAreFatal) > immutilError("saImmOiInitialize FAILED, rc = %d", (int)rc); > return rc; > @@ -1108,7 +1112,7 @@ immutil_saImmOiInitialize_2(SaImmOiHandleT > *immOiHandle, > SaAisErrorT > immutil_saImmOiInitialize_o3(SaImmOiHandleT *immOiHandle, > const SaImmOiCallbacksT_o3 *immOiCallbacks, > - const SaVersionT *version) > + SaVersionT *version) > { > /* Version parameter is in/out i.e. must be mutable and should not be > re-used from previous call in a retry loop. */ > @@ -1125,6 +1129,8 @@ immutil_saImmOiInitialize_o3(SaImmOiHandleT > *immOiHandle, > &localVer); > nTries++; > } > + > + *version = localVer; > if (rc != SA_AIS_OK && immutilWrapperProfile.errorsAreFatal) > immutilError("saImmOiInitialize_o3 FAILED, rc = %d", (int)rc); > return rc; > @@ -1515,7 +1521,7 @@ SaAisErrorT > immutil_saImmOiAugmentCcbInitialize( > > SaAisErrorT immutil_saImmOmInitialize(SaImmHandleT *immHandle, > const SaImmCallbacksT *immCallbacks, > - const SaVersionT *version) > + SaVersionT *version) > { > /* Version parameter is in/out i.e. must be mutable and should not be > re-used from previous call in a retry loop. */ > @@ -1530,6 +1536,8 @@ SaAisErrorT > immutil_saImmOmInitialize(SaImmHandleT *immHandle, > rc = saImmOmInitialize(immHandle, immCallbacks, &localVer); > nTries++; > } > + > + *version = localVer; > if (rc != SA_AIS_OK && immutilWrapperProfile.errorsAreFatal) > immutilError("saImmOmInitialize FAILED, rc = %d", (int)rc); > return rc; > @@ -1553,6 +1561,8 @@ SaAisErrorT > immutil_saImmOmInitialize_o2(SaImmHandleT *immHandle, > rc = saImmOmInitialize_o2(immHandle, immCallbacks, > &localVer); > nTries++; > } > + > + *version = localVer; > if (rc != SA_AIS_OK && immutilWrapperProfile.errorsAreFatal) > immutilError(" FAILED, rc = %d", (int)rc); > return rc; > diff --git a/src/osaf/immutil/immutil.h b/src/osaf/immutil/immutil.h > index dc6449b..63e710f 100644 > --- a/src/osaf/immutil/immutil.h > +++ b/src/osaf/immutil/immutil.h > @@ -421,11 +421,11 @@ struct ImmutilWrapperProfile { > */ > EXTERN_C SaAisErrorT immutil_saImmOiInitialize_2( > SaImmOiHandleT *immOiHandle, const SaImmOiCallbacksT_2 > *immOiCallbacks, > - const SaVersionT *version); > + SaVersionT *version); > > EXTERN_C SaAisErrorT immutil_saImmOiInitialize_o3( > SaImmOiHandleT *immOiHandle, const SaImmOiCallbacksT_o3 > *immOiCallbacks, > - const SaVersionT *version); > + SaVersionT *version); > > EXTERN_C SaAisErrorT immutil_saImmOiSelectionObjectGet( > SaImmOiHandleT immOiHandle, SaSelectionObjectT *selectionObject); > @@ -500,7 +500,7 @@ EXTERN_C SaAisErrorT > immutil_saImmOiAugmentCcbInitialize( > > EXTERN_C SaAisErrorT immutil_saImmOmInitialize( > SaImmHandleT *immHandle, const SaImmCallbacksT *immCallbacks, > - const SaVersionT *version); > + SaVersionT *version); > > EXTERN_C SaAisErrorT immutil_saImmOmInitialize_o2( > SaImmHandleT *immHandle, const SaImmCallbacksT_o2 *immCallbacks, > diff --git a/src/smf/smfd/SmfAdminState.cc > b/src/smf/smfd/SmfAdminState.cc > index 9508447..52bdf4b 100644 > --- a/src/smf/smfd/SmfAdminState.cc > +++ b/src/smf/smfd/SmfAdminState.cc > @@ -264,12 +264,13 @@ done: > // > bool SmfAdminStateHandler::initImmOmAndSetAdminOwnerName() { > SaAisErrorT ais_rc = SA_AIS_ERR_TRY_AGAIN; > + SaVersionT local_version = immVersion_; > int timeout_try_cnt = 6; > bool rc = true; > > // OM handle > while (timeout_try_cnt > 0) { > - ais_rc = immutil_saImmOmInitialize(&omHandle_, NULL, &immVersion_); > + ais_rc = immutil_saImmOmInitialize(&omHandle_, NULL, &local_version); > if (ais_rc != SA_AIS_ERR_TIMEOUT) break; > timeout_try_cnt--; > } > @@ -973,4 +974,3 @@ bool > SmfAdminStateHandler::adminOperation(SaAmfAdminOperationIdT > adminOperation, > TRACE_LEAVE2("rc=%d", rc); > return rc; > } > - > diff --git a/src/smf/smfd/SmfExecControlHdl.cc > b/src/smf/smfd/SmfExecControlHdl.cc > index e97b765..bb5f9a5 100644 > --- a/src/smf/smfd/SmfExecControlHdl.cc > +++ b/src/smf/smfd/SmfExecControlHdl.cc > @@ -373,6 +373,7 @@ bool > SmfExecControlObjHandler::copyExecControlObject() { > */ > bool SmfExecControlObjHandler::createImmOmHandles() { > SaAisErrorT ais_rc = SA_AIS_ERR_TRY_AGAIN; > + SaVersionT local_version = m_immVersion; > int timeout_try_cnt = 6; > bool rc = true; > > @@ -382,7 +383,7 @@ bool > SmfExecControlObjHandler::createImmOmHandles() { > > // OM handle > while (timeout_try_cnt > 0) { > - ais_rc = immutil_saImmOmInitialize(&m_omHandle, NULL, > &m_immVersion); > + ais_rc = immutil_saImmOmInitialize(&m_omHandle, NULL, > &local_version); > if (ais_rc != SA_AIS_ERR_TIMEOUT) break; > timeout_try_cnt--; > } > -- > 1.9.1 ------------------------------------------------------------------------------ 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
