PS_NO_EXTERNAL_DB_SET = 99, // no external DB set (initial state)
} PSStatus_t;
+//SVR DB Validity status
+typedef enum
+{
+ SVRDB_NOT_VALID = 0,
+ SVRDB_VALID = 1,
+ SVRDB_NOT_CHECKED = 255
+} SVRDBValidStatus_t;
+
/**
* Reads the Secure Virtual Database from PS into dynamically allocated
* memory buffer.
void SetPSStatus(PSStatus_t status);
/**
+ * This function return SVR DB state: valid, not valid or was not checked yet
+ *
+ * @return Status of SVR DB
+ */
+SVRDBValidStatus_t GetSVRDBValidStatus(void);
+
+/**
* This method prints debug log that displays persistent storage status.
*/
void PrintPSStatus(void);
// Persistent Storage status
static PSStatus_t g_psStatus = PS_NO_EXTERNAL_DB_SET;
+//SVR DB Validation status
+static SVRDBValidStatus_t g_svrdbValidStatus = SVRDB_NOT_CHECKED;
+
static resetSVRDBCB_t g_resetSVRDBCB = {0};
resetSVRDBCB_t* const GetResetSVRDBCB(void)
{
return &g_resetSVRDBCB;
}
+
+/**
+ * Set status of SVR DB after call CheckSVRDBValidity() API
+ */
+static void SetSVRDBValidStatus(SVRDBValidStatus_t status)
+{
+ g_svrdbValidStatus = status;
+}
+
/**
* Update the Persistent Storage Database size.
*/
g_psStatus = status;
}
+SVRDBValidStatus_t GetSVRDBValidStatus()
+{
+ return g_svrdbValidStatus;
+}
+
void PrintPSStatus(void)
{
switch(g_psStatus)
isPstatRownerUuidEmpty = false;
}
- OicSecDpm_t cm = 0;
+ OicSecDpm_t cm = NORMAL;
VERIFY_SUCCESS(TAG, OC_STACK_OK == GetPstatCm(&cm), ERROR);
if (OC_STACK_OK != GetAclRownerId(&resRowneruuid))
if(!GetPstatIsop() || (cm & TAKE_OWNER))
{
+ OIC_LOG_V(ERROR, TAG, "%s - isop or cm properties are incorrect!", __func__);
res = OC_STACK_ERROR;
goto exit;
}
goto exit;
}
- if (OC_STACK_OK != CheckSecurityACEPermision(PERMISSION_READ))
+ if (OC_STACK_OK != CheckSecurityACEPermission(PERMISSION_READ))
{
+ OIC_LOG_V(ERROR, TAG, "%s - ACE permission doesn't match to READ", __func__);
res = OC_STACK_ERROR;
goto exit;
}
goto exit;
}
- if (OC_STACK_OK != CheckSecurityACEPermision(PERMISSION_READ | PERMISSION_WRITE))
+ if (OC_STACK_OK != CheckSecurityACEPermission(PERMISSION_READ | PERMISSION_WRITE))
{
+ OIC_LOG_V(ERROR, TAG, "%s - ACE permission doesn't match to READ|WRITE", __func__);
res = OC_STACK_ERROR;
goto exit;
}
}
else
{
- SetPSStatus(PS_PARSE_FAIL);
- res = DestroySecureResources();
- if(OC_STACK_OK == res)
- {
- res = InitSecureResources();
- if(OC_STACK_OK != res)
- {
- res = OC_STACK_INCONSISTENT_DB;
- }
- }
- else
- {
- res = OC_STACK_INCONSISTENT_DB;
- }
+ res = OC_STACK_INCONSISTENT_DB;
}
}
+
+ if(OC_STACK_OK == res)
+ {
+ SetSVRDBValidStatus(SVRDB_VALID);
+ }
+ else
+ {
+ SetSVRDBValidStatus(SVRDB_NOT_VALID);
+ }
OIC_LOG_V(DEBUG, TAG, "Out %s", __func__);
return res;
OIC_LOG_V(DEBUG, TAG, "Out %s", __func__);
return ret;
-}
\ No newline at end of file
+}