static int g_feature_enabled = -1;
-static int g_privilege_allowed = -1;
+static int g_recorder_privilege_allowed = -1;
+static int g_volume_set_privilege_allowed = -1;
static cynara *p_cynara = NULL;
static void __ma_notify_state_changed(void* data);
p_cynara = NULL;
}
-static int __ma_check_privilege()
+static int __ma_check_recorder_privilege()
{
char uid[16];
- if (0 == g_privilege_allowed) {
+ if (0 == g_recorder_privilege_allowed) {
//LCOV_EXCL_START
- SLOG(LOG_ERROR, TAG_MAC, "[ERROR] Permission is denied");
+ SLOG(LOG_ERROR, TAG_MAC, "[ERROR] Permission for recording is denied");
return MA_ERROR_PERMISSION_DENIED;
//LCOV_EXCL_STOP
- } else if (-1 == g_privilege_allowed) {
+ } else if (-1 == g_recorder_privilege_allowed) {
if (false == __check_privilege_initialize()) {
SLOG(LOG_ERROR, TAG_MAC, "[ERROR] privilege initialize is failed"); //LCOV_EXCL_LINE
return MA_ERROR_PERMISSION_DENIED;
}
snprintf(uid, 16, "%d", getuid());
- if (false == __check_privilege(uid, MA_PRIVILEGE)) {
- SLOG(LOG_ERROR, TAG_MAC, "[ERROR] Permission is denied");
- g_privilege_allowed = 0;
+ if (false == __check_privilege(uid, MA_RECORDER_PRIVILEGE)) {
+ SLOG(LOG_ERROR, TAG_MAC, "[ERROR] Permission for recording is denied");
+ g_recorder_privilege_allowed = 0;
__check_privilege_deinitialize();
return MA_ERROR_PERMISSION_DENIED;
}
__check_privilege_deinitialize();
}
- g_privilege_allowed = 1;
+ g_recorder_privilege_allowed = 1;
+ return MA_ERROR_NONE;
+}
+
+static int __ma_check_volume_set_privilege()
+{
+ char uid[16];
+
+ if (0 == g_volume_set_privilege_allowed) {
+ //LCOV_EXCL_START
+ SLOG(LOG_ERROR, TAG_MAC, "[ERROR] Permission for volume set is denied");
+ return MA_ERROR_PERMISSION_DENIED;
+ //LCOV_EXCL_STOP
+ } else if (-1 == g_volume_set_privilege_allowed) {
+ if (false == __check_privilege_initialize()) {
+ SLOG(LOG_ERROR, TAG_MAC, "[ERROR] privilege initialize is failed"); //LCOV_EXCL_LINE
+ return MA_ERROR_PERMISSION_DENIED;
+ }
+ snprintf(uid, 16, "%d", getuid());
+ if (false == __check_privilege(uid, MA_VOLUME_SET_PRIVILEGE)) {
+ SLOG(LOG_ERROR, TAG_MAC, "[ERROR] Permission for volume set is denied");
+ g_volume_set_privilege_allowed = 0;
+ __check_privilege_deinitialize();
+ return MA_ERROR_PERMISSION_DENIED;
+ }
+ __check_privilege_deinitialize();
+ }
+
+ g_volume_set_privilege_allowed = 1;
return MA_ERROR_NONE;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
- return MA_ERROR_PERMISSION_DENIED;
- }
-
if (NULL == type) {
SLOG(LOG_ERROR, TAG_MAC, "[ERROR] Invalid parameter");
return MA_ERROR_INVALID_PARAMETER;
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_volume_set_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
return MA_ERROR_NOT_SUPPORTED;
}
- if (0 != __ma_check_privilege()) {
+ if (0 != __ma_check_recorder_privilege()) {
return MA_ERROR_PERMISSION_DENIED;
}
SLOG(LOG_DEBUG, TAG_MAC, "[DEBUG] Success to send");
}
return ret;
-}
\ No newline at end of file
+}