osaf/libs/common/immsv/include/immsv_api.h | 1 +
osaf/services/saf/immsv/immnd/ImmModel.cc | 30 ++++++++++++++++++++++++++++++
osaf/services/saf/immsv/immnd/ImmModel.hh | 1 +
osaf/services/saf/immsv/immnd/immnd_init.h | 1 +
4 files changed, 33 insertions(+), 0 deletions(-)
Add OPENSAF_IMM_FLAG_PRT47_ALLOW value for noStdFlags.
diff --git a/osaf/libs/common/immsv/include/immsv_api.h
b/osaf/libs/common/immsv/include/immsv_api.h
--- a/osaf/libs/common/immsv/include/immsv_api.h
+++ b/osaf/libs/common/immsv/include/immsv_api.h
@@ -136,6 +136,7 @@ typedef enum {
#define OPENSAF_IMM_FLAG_2PBE1_ALLOW 0x00000008
#define OPENSAF_IMM_FLAG_PRT45_ALLOW 0x00000010
#define OPENSAF_IMM_FLAG_PRT46_ALLOW 0x00000020
+#define OPENSAF_IMM_FLAG_PRT47_ALLOW 0x00000040
#define OPENSAF_IMM_SERVICE_NAME "safImmService"
diff --git a/osaf/services/saf/immsv/immnd/ImmModel.cc
b/osaf/services/saf/immsv/immnd/ImmModel.cc
--- a/osaf/services/saf/immsv/immnd/ImmModel.cc
+++ b/osaf/services/saf/immsv/immnd/ImmModel.cc
@@ -961,6 +961,13 @@ immModel_protocol46Allowed(IMMND_CB *cb)
SA_TRUE : SA_FALSE;
}
+SaBoolT
+immModel_protocol47Allowed(IMMND_CB *cb)
+{
+ return (ImmModel::instance(&cb->immModel)->protocol47Allowed()) ?
+ SA_TRUE : SA_FALSE;
+}
+
OsafImmAccessControlModeT
immModel_accessControlMode(IMMND_CB *cb)
{
@@ -3614,6 +3621,28 @@ ImmModel::protocol46Allowed()
}
bool
+ImmModel::protocol47Allowed()
+{
+ //TRACE_ENTER();
+ ObjectMap::iterator oi = sObjectMap.find(immObjectDn);
+ if(oi == sObjectMap.end()) {
+ TRACE_LEAVE();
+ return false;
+ }
+
+ ObjectInfo* immObject = oi->second;
+ ImmAttrValueMap::iterator avi =
+ immObject->mAttrValueMap.find(immAttrNostFlags);
+ osafassert(avi != immObject->mAttrValueMap.end());
+ osafassert(!(avi->second->isMultiValued()));
+ ImmAttrValue* valuep = avi->second;
+ unsigned int noStdFlags = valuep->getValue_int();
+
+ //TRACE_LEAVE();
+ return noStdFlags & OPENSAF_IMM_FLAG_PRT47_ALLOW;
+}
+
+bool
ImmModel::protocol41Allowed()
{
//TRACE_ENTER();
@@ -4472,6 +4501,7 @@ ImmModel::adminOwnerDelete(SaUint32T own
noStdFlags |= OPENSAF_IMM_FLAG_PRT43_ALLOW;
noStdFlags |= OPENSAF_IMM_FLAG_PRT45_ALLOW;
noStdFlags |= OPENSAF_IMM_FLAG_PRT46_ALLOW;
+ noStdFlags |= OPENSAF_IMM_FLAG_PRT47_ALLOW;
valuep->setValue_int(noStdFlags);
LOG_NO("%s changed to: 0x%x", immAttrNostFlags.c_str(),
noStdFlags);
/* END Temporary code. */
diff --git a/osaf/services/saf/immsv/immnd/ImmModel.hh
b/osaf/services/saf/immsv/immnd/ImmModel.hh
--- a/osaf/services/saf/immsv/immnd/ImmModel.hh
+++ b/osaf/services/saf/immsv/immnd/ImmModel.hh
@@ -110,6 +110,7 @@ public:
bool protocol43Allowed();
bool protocol45Allowed();
bool protocol46Allowed();
+ bool protocol47Allowed();
bool oneSafe2PBEAllowed();
bool purgeSyncRequest(SaUint32T clientId);
bool verifySchemaChange(const std::string& className,
diff --git a/osaf/services/saf/immsv/immnd/immnd_init.h
b/osaf/services/saf/immsv/immnd/immnd_init.h
--- a/osaf/services/saf/immsv/immnd/immnd_init.h
+++ b/osaf/services/saf/immsv/immnd/immnd_init.h
@@ -301,6 +301,7 @@ extern "C" {
SaBoolT immModel_protocol43Allowed(IMMND_CB *cb);
SaBoolT immModel_protocol45Allowed(IMMND_CB *cb);
SaBoolT immModel_protocol46Allowed(IMMND_CB *cb);
+ SaBoolT immModel_protocol47Allowed(IMMND_CB *cb);
SaBoolT immModel_oneSafe2PBEAllowed(IMMND_CB *cb);
OsafImmAccessControlModeT immModel_accessControlMode(IMMND_CB *cb);
const char *immModel_authorizedGroup(IMMND_CB *cb);
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel