Ack, code review only.
Thanks,
Praveen
On 14-Jul-17 6:42 PM, Zoran Milinkovic wrote:
CLM handles ERR_BAD_HANDLE for saImmOmSearchInitialize in
clms_cluster_config_get.
As part of this patch, handling of IMM version is improved in the same function.
---
src/clm/clmd/clms_imm.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/src/clm/clmd/clms_imm.c b/src/clm/clmd/clms_imm.c
index 06a7df8..51429ec 100644
--- a/src/clm/clmd/clms_imm.c
+++ b/src/clm/clmd/clms_imm.c
@@ -432,10 +432,12 @@ SaAisErrorT clms_cluster_config_get(void)
SaNameT dn;
SaImmAttrValuesT_2 **attributes;
const char *className = "SaClmCluster";
+ SaVersionT version;
TRACE_ENTER();
- (void)immutil_saImmOmInitialize(&imm_om_hdl, NULL, &immVersion);
+ version = immVersion;
+ (void)immutil_saImmOmInitialize(&imm_om_hdl, NULL, &version);
searchParam.searchOneAttr.attrName = "SaImmAttrClassName";
searchParam.searchOneAttr.attrValueType = SA_IMM_ATTR_SASTRINGT;
@@ -446,6 +448,20 @@ SaAisErrorT clms_cluster_config_get(void)
SA_IMM_SEARCH_ONE_ATTR | SA_IMM_SEARCH_GET_ALL_ATTR, &searchParam,
NULL, &search_hdl);
+ if (rc == SA_AIS_ERR_BAD_HANDLE) {
+ // Repeat one more search on ERR_BAD_HANDLE
+
+ // Close the open OM handle, and initialize a new one
+ (void)immutil_saImmOmFinalize(imm_om_hdl);
+ version = immVersion;
+ (void)immutil_saImmOmInitialize(&imm_om_hdl, NULL, &version);
+
+ rc = immutil_saImmOmSearchInitialize_2(
+ imm_om_hdl, &osaf_cluster->name, SA_IMM_SUBTREE,
+ SA_IMM_SEARCH_ONE_ATTR | SA_IMM_SEARCH_GET_ALL_ATTR,
+ &searchParam, NULL, &search_hdl);
+ }
+
if (rc != SA_AIS_OK) {
LOG_ER("No Object of SaClmCluster Class was found");
goto done1;
------------------------------------------------------------------------------
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