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

Reply via email to