summaryrefslogtreecommitdiff
path: root/src/plugins/dm-private/lawmo/src/plugin_interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/dm-private/lawmo/src/plugin_interface.c')
-rwxr-xr-xsrc/plugins/dm-private/lawmo/src/plugin_interface.c687
1 files changed, 687 insertions, 0 deletions
diff --git a/src/plugins/dm-private/lawmo/src/plugin_interface.c b/src/plugins/dm-private/lawmo/src/plugin_interface.c
new file mode 100755
index 0000000..cbf5215
--- /dev/null
+++ b/src/plugins/dm-private/lawmo/src/plugin_interface.c
@@ -0,0 +1,687 @@
+/*
+ * oma-dm-agent
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <glib.h>
+#include <glib/gprintf.h>
+#include <vconf.h>
+
+/*sync-agent*/
+#include <sync_agent.h>
+
+#include "plugin_devexe_error.h"
+
+#ifndef EXPORT_API
+#define EXPORT_API __attribute__ ((visibility("default")))
+#endif
+
+#ifndef OMADM_AGENT_LOG
+#undef LOG_TAG
+#define LOG_TAG "PLUGIN_LAWMO"
+#endif
+
+#define SERVER_NUM 1
+
+#define ROOT "./Ext/OSPS"
+
+typedef enum {
+ FULLY_LOCK,
+ PARTAILLY_LOCK,
+ UNLOCK,
+ FACTORY_RESET,
+ WIPE,
+
+ RING_START,
+ RING_STOP,
+
+ MT_LOCATION,
+ MT_STOP,
+ MT_TRACKING,
+
+ FW_DIVERTREQUEST,
+
+ MK_LOCK
+} lawmo_ext_name_e;
+
+typedef int (*Execute_Device) (int plugin_name, ...);
+typedef struct {
+ lawmo_ext_name_e ext_name;
+ char *main_path; /* path except to root path */
+ Execute_Device func_execute_device;
+} ext_function_s;
+
+static sync_agent_dev_return_e _fully_lock(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _partially_lock(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _unlock(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _factory_reset(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _remote_wipe(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _ring_my_phone_start(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _ring_my_phone_stop(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _mobile_tracking_get_location(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _mobile_tracking_operation_stop(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _mobile_tracking_operation(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _forwarding_diver_request(int platform, int *err_num, int check_operation);
+static sync_agent_dev_return_e _master_key_lock_release(int platform, int *err_num, int check_operation);
+
+static ext_function_s ext_functions[] = {
+
+ /* Lock & Wipe */
+ {FULLY_LOCK, "LAWMO/OSP/Operations/FullyLock", (Execute_Device) _fully_lock},
+ {PARTAILLY_LOCK, "LAWMO/OSP/Operations/PartiallyLock", (Execute_Device) _partially_lock},
+ {UNLOCK, "LAWMO/OSP/Operations/UnLock", (Execute_Device) _unlock},
+ {FACTORY_RESET, "LAWMO/OSP/Operations/FactoryReset", (Execute_Device) _factory_reset},
+ {WIPE, "LAWMO/OSP/Operations/Wipe", (Execute_Device) _remote_wipe},
+ /* TODO : should add the lock&wipe interface */
+
+ /* Ring My Phone */
+ /* TODO */
+ {RING_START, "LAWMO/OSP/Ext/RingMyPhone/Operations/Start", (Execute_Device) _ring_my_phone_start},
+ {RING_STOP, "LAWMO/OSP/Ext/RingMyPhone/Operations/Stop", (Execute_Device) _ring_my_phone_stop},
+
+ /* Location */
+ /* TODO */
+ {MT_LOCATION, "MobileTraking/Operation/Get/Location", (Execute_Device) _mobile_tracking_get_location},
+ {MT_STOP, "MobileTracking/Operations/Stop", (Execute_Device) _mobile_tracking_operation_stop},
+ {MT_TRACKING, "MobileTracking/Operations/Tracking", (Execute_Device) _mobile_tracking_operation},
+
+ /* Forwarding */
+ /* TODO */
+ {FW_DIVERTREQUEST, "Forwarding/Operations/DivertRequest", (Execute_Device) _forwarding_diver_request},
+
+ /* MasterKey */
+ /* TODO */
+ {MK_LOCK, "MasterKey/Operations/LockRelease", (Execute_Device) _master_key_lock_release},
+
+ {0, 0} /* end array */
+};
+
+static sync_agent_get_devinfo_cb func_get_dev_Info = 0;
+
+/* static function */
+static char *_get_main_path(const char *mo_path);
+
+//static int _get_index(const char *name);
+//static char *_get_mo_value_str(const char *vconf_key, int n_index);
+
+EXPORT_API char **sync_agent_plugin_get_server_id_list(int *server_id_list_cnt)
+{
+ _EXTERN_FUNC_ENTER;
+/*
+ *server_id_list_cnt = 0;
+ char **temp_id_list = (char **)calloc(SERVER_NUM, sizeof(char *));
+ if (temp_id_list == NULL) {
+ _EXTERN_FUNC_EXIT;
+ return 0;
+ }
+
+ char *sever_name = 0;
+ int server_idx = 0;
+ char *server_id = 0;
+
+ int i;
+ for (i = 0; i < SERVER_NUM; i++) {
+
+ switch (i) {
+ case 0:
+ sever_name = ALTER_SYNCMLDM_ACCNAME_1;
+ break;
+ case 1:
+ sever_name = ALTER_SYNCMLDM_ACCNAME_2;
+ break;
+ }
+
+ server_idx = _get_index(sever_name);
+ server_id = _get_mo_value_str(CSC_VCONF_KEY_SYNCMLDM_SERVID, server_idx);
+ if (server_id == NULL) {
+ switch(i){
+ case 0:
+ server_id = strdup(ALTER_SYNCMLDM_SERVID_1);
+ break;
+ case 1:
+ server_id = strdup(ALTER_SYNCMLDM_SERVID_2);
+ break;
+ }
+ }
+ _DEBUG_INFO("Temp_id_list[%d] = %s\n", i, server_id);
+ temp_id_list[i] = server_id;
+ (*server_id_list_cnt)++;
+ }
+ _DEBUG_INFO("server_id_list_cnt = %d\n", *server_id_list_cnt);
+
+ _EXTERN_FUNC_EXIT;
+ return temp_id_list;
+*/
+ *server_id_list_cnt = 1;
+ char **temp_id_list = (char **)calloc(SERVER_NUM, sizeof(char *));
+ if (temp_id_list == NULL) {
+ _EXTERN_FUNC_EXIT;
+ return NULL;
+ }
+ char *server_id = NULL;
+ server_id = strdup("*");
+ *temp_id_list = server_id;
+
+ _DEBUG_INFO("lawmo server_id = %s\n", server_id);
+ _DEBUG_INFO("lawmo server_id_list_cnt = %d\n", *server_id_list_cnt);
+
+ _EXTERN_FUNC_EXIT;
+ return temp_id_list;
+}
+
+EXPORT_API int sync_agent_plugin_get_mo_value(const char *mo_pull_path, const char *mo_name, char **mo_value)
+{
+ _EXTERN_FUNC_ENTER;
+
+ _DEBUG_INFO("mo_name : %s", mo_name);
+ *mo_value = 0;
+
+ if (mo_pull_path == NULL || mo_name == NULL) {
+ return -1;
+ }
+
+ _DEBUG_INFO("mo_value : %s", *mo_value);
+
+ _EXTERN_FUNC_EXIT;
+ return 0;
+}
+
+EXPORT_API void sync_agent_plugin_set_function_get_devinfo(sync_agent_get_devinfo_cb func)
+{
+ _EXTERN_FUNC_ENTER;
+
+ func_get_dev_Info = func;
+
+ _EXTERN_FUNC_EXIT;
+}
+
+EXPORT_API int sync_agent_plugin_initialize()
+{
+ _EXTERN_FUNC_ENTER;
+
+ int result = 0;
+ result = 0; //req_fmm_server_reg(NULL);
+ /*
+ if (result != 0) {
+ goto error;
+ }
+ */
+ _EXTERN_FUNC_EXIT;
+ return 1;
+/*
+ error:
+ _EXTERN_FUNC_EXIT;
+ return -1; // Fail
+*/
+}
+
+EXPORT_API int sync_agent_plugin_execute_ext(const char *mo_path, int *err_num, int check_operation)
+{
+ _EXTERN_FUNC_ENTER;
+
+ if (mo_path == NULL) {
+ _DEBUG_INFO("mo_path is NULL\n");
+ _EXTERN_FUNC_EXIT;
+ return 0;
+ }
+ _DEBUG_INFO("mo_path = %s\n", mo_path);
+
+ char *main_path = _get_main_path(mo_path);
+ if (main_path == NULL) {
+ _DEBUG_INFO("main_path is NULL\n");
+ _EXTERN_FUNC_EXIT;
+ return 0;
+ }
+ _DEBUG_INFO("main_path = %s\n", main_path);
+
+ int ret = 1;
+ int slp_exe_ret = 1;
+
+ int i = 0;
+ while (ext_functions[i].main_path != 0 && ext_functions[i].func_execute_device != 0) {
+ _DEBUG_INFO("oper 1 %s", main_path);
+ _DEBUG_INFO("oper 2 %s", ext_functions[i].main_path);
+ if (strcmp(main_path, ext_functions[i].main_path) == 0) {
+ _DEBUG_INFO("%s Part", main_path);
+
+ slp_exe_ret = ext_functions[i].func_execute_device(1, err_num, check_operation);
+ _DEBUG_INFO("execute return : %d", slp_exe_ret);
+
+ if (slp_exe_ret != SYNC_AGENT_DEV_RETURN_SUCCESS) {
+ ret = 0;
+ _DEBUG_INFO("--------------------------------------lawmo operation fail : %d---------------------------------\n", (*err_num));
+ } else {
+ //*err_num = __convert_errcode(ext_functions[i].ext_name, slp_exe_ret);
+ _DEBUG_INFO("--------------------------------------lawmo result value : %d---------------------------------\n", (*err_num));
+ }
+ break;
+ } else {
+ _DEBUG_INFO("--------------------------------------not search lawmo operation---------------------------------\n");
+ }
+ i++;
+ }
+
+ if (main_path != NULL)
+ free(main_path);
+
+ _EXTERN_FUNC_EXIT;
+ return ret;
+}
+
+static char *_get_main_path(const char *mo_path)
+{
+ _INNER_FUNC_ENTER;
+
+ int root_length = strlen(ROOT);
+ int mo_path_length = strlen(mo_path);
+
+ char *main_path = 0;
+
+ char *ptr = strstr(mo_path, ROOT);
+ if (ptr != NULL && root_length < mo_path_length) {
+ _DEBUG_TRACE("%s Search Success !!\n", ROOT);
+ main_path = g_strdup_printf("%s", mo_path + (root_length + 1));
+ }
+
+ _INNER_FUNC_EXIT;
+
+ return main_path;
+}
+
+/*
+static int _get_index(const char *name)
+{
+ _INNER_FUNC_ENTER;
+
+ if (name == NULL) {
+ return -1;
+ }
+
+ int n_acc_count = 0;
+ if (vconf_get_int(CSC_VCONF_KEY_SYNCMLDM_NBFIELD, &n_acc_count)) {
+ _DEBUG_TRACE("vconf_get_int FAIL");
+ //return -1;
+ n_acc_count =ALTER_SYNCMLDM_NBFIELD;
+ }
+
+ _DEBUG_TRACE("nAccCount : %d", n_acc_count);
+
+ int i = 0;
+ for (; i < n_acc_count; i++) {
+ char *compare_name = _get_mo_value_str(CSC_VCONF_KEY_SYNCMLDM_ACCNAME, i + 1);
+ if (compare_name == NULL) {
+ switch(i) {
+ case 0:
+ compare_name = ALTER_SYNCMLDM_ACCNAME_1;
+ break;
+ case 1:
+ compare_name = ALTER_SYNCMLDM_ACCNAME_2;
+ break;
+ default :
+ continue;
+ break;
+ }
+ }
+ _DEBUG_TRACE("[%d] compare_name : %s [%d], name : %s [%d]", i, compare_name, strlen(compare_name), name, strlen(name));
+ if (!strcmp(name, compare_name)) {
+ _DEBUG_TRACE("nIndex : %d", i + 1);
+ _INNER_FUNC_EXIT;
+ return i + 1;
+ }
+ }
+
+ _INNER_FUNC_EXIT;
+ return -1;
+}
+
+static char *_get_mo_value_str(const char *vconf_key, int n_index)
+{
+ _INNER_FUNC_ENTER;
+
+ if (n_index == -1) {
+ _INNER_FUNC_EXIT;
+ return 0;
+ }
+
+ char input_vconf_path[200] = { 0, };
+ char rec_idx[8];
+
+ memset(rec_idx, 0x0, sizeof(rec_idx));
+ snprintf(rec_idx, sizeof(rec_idx), "%d", n_index);
+ snprintf(input_vconf_path, strlen(vconf_key) + strlen(rec_idx) + 1, vconf_key, n_index);
+
+ char *value = vconf_get_str(input_vconf_path);
+ if (value == NULL) {
+ _DEBUG_TRACE("vconf_get_str FAIL");
+ }
+
+ _INNER_FUNC_EXIT;
+
+ return value;
+}
+*/
+
+static sync_agent_dev_return_e _fully_lock(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+
+ /* AMT OFF */
+ _DEBUG_TRACE("====================Fully_Lock==================== \n");
+ _DEBUG_TRACE("check_operarion [%d]\n", check_operation);
+
+ int return_value;
+
+ if (check_operation == 1) {
+ _DEBUG_TRACE("checked : 1 =======return 202 =======\n");
+ *err_num = 202;
+ } else {
+
+ return_value = EXE_SUCCESS; //exec_fully_lock();
+ _DEBUG_TRACE("checked : 0 =======return :%d =======\n", return_value);
+ /*
+ if (return_value == EXE_SUCCESS) {
+ *err_num = OPERATION_SUCCEEDED;
+ } else {
+ *err_num = CLIENT_ERROR;
+ }
+ */
+ }
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+
+}
+
+static sync_agent_dev_return_e _partially_lock(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+
+ /* AMT OFF */
+ _DEBUG_TRACE("====================Partially_Lock==================== \n");
+ sleep(3);
+ int return_value = OPERATION_SUCCEEDED;
+ /*
+ return PARTIALLY_LOCK_DEVICE_FAILED;
+ sync_agent_execute_dev_function(2, "partial_lock", 0);
+ vconf_get_bool(VCONFKEY_SETAPPL_FIND_MY_MOBILE_REMOTE_CONTROL_BOOL, &rc_status));
+ if(true)
+ return_value = 1200;
+ else
+ return_value = 1452;
+ */
+ *err_num = return_value;
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}
+
+static sync_agent_dev_return_e _unlock(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+
+ /* AMT OFF */
+ _DEBUG_TRACE("====================UnLock==================== \n");
+ _DEBUG_TRACE("check_operarion [%d]\n", check_operation);
+
+ int return_value = OPERATION_SUCCEEDED;
+
+ *err_num = return_value;
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}
+
+static sync_agent_dev_return_e _factory_reset(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+
+ /* AMT OFF */
+ _DEBUG_TRACE("====================Factory_Reset==================== \n");
+ int return_value = OPERATION_SUCCEEDED;
+ sleep(3);
+ /*
+ vconf_get_bool(VCONFKEY_SETAPPL_FIND_MY_MOBILE_REMOTE_CONTROL_BOOL, &rc_status));
+ if(true)
+ return_value = 1200;
+ else
+ return_value = 1452;
+ */
+ *err_num = return_value;
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}
+
+static sync_agent_dev_return_e _remote_wipe(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+ /* AMT OFF */
+ _DEBUG_TRACE("====================Remote_Wipe==================== \n");
+
+ int return_value = 202;
+ if (check_operation == 1) {
+ /*
+ vconf_get_bool(VCONFKEY_SETAPPL_FIND_MY_MOBILE_REMOTE_CONTROL_BOOL, &rc_status));
+ if(true)
+ return_value = 202;
+ else
+ return_value = 1452;
+ */
+ *err_num = return_value;
+ } else {
+ return_value = OPERATION_SUCCEEDED; //exec_wipe_out();
+ g_printf("checked : 0 =======return :%d =======\n", return_value);
+ *err_num = return_value;
+ }
+ /*
+ sync_agent_execute_dev_function(2, "factory_reset", 0);
+ return WIPE_OPERATION_NOT_PERFORMED;
+ return WIPE_DEVICES_DATA_FAILED;
+ return EXTERNAL_AND_SIM_MEMORY_WIPE_FAILED;
+ return EXTERNAL_MEMORY_WIPE_FAILED;
+ return SIM_MEMORY_WIPE_FAILED;
+ */
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}
+
+static sync_agent_dev_return_e _ring_my_phone_start(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_EXIT;
+
+ /* AMT OFF */
+ _DEBUG_TRACE("====================Ring my phone start==================== \n");
+ _DEBUG_TRACE("check_operarion [%d]\n", check_operation);
+
+ int return_value;
+
+ if (check_operation == 1) {
+ /*
+ vconf_get_bool(VCONFKEY_SETAPPL_FIND_MY_MOBILE_REMOTE_CONTROL_BOOL, &rc_status));
+ if(true)
+ return_value = 1200;
+ else
+ return_value = 1452;
+ */
+ *err_num = OPERATION_SUCCEEDED;
+
+ } else {
+ return_value = EXE_SUCCESS; // exec_ring_start();
+ _DEBUG_TRACE("checked : 0 =======return :%d =======\n", return_value);
+ /*
+ if (return_value == EXE_SUCCESS) {
+ *err_num = OPERATION_SUCCEEDED;
+ } else {
+ *err_num = AMT_STATUS_OFF;
+ }
+ */
+ }
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}
+
+static sync_agent_dev_return_e _ring_my_phone_stop(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+ /* AMT OFF */
+ _DEBUG_TRACE("====================Ring my phone stop====================\n");
+ _DEBUG_TRACE("check_operarion [%d]\n", check_operation);
+
+ int return_value = 202;
+ sleep(3);
+
+ if (check_operation == 1) {
+ *err_num = return_value;
+ } else {
+
+ return_value = EXE_SUCCESS; //exec_ring_stop();
+ /*
+ if (return_value == EXE_SUCCESS) {
+ *err_num = OPERATION_SUCCEEDED;
+ } else {
+ *err_num = OPERATION_SUCCEEDED;
+ }
+ */
+ }
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}
+
+static sync_agent_dev_return_e _mobile_tracking_get_location(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+
+ /* AMT OFF */
+ _DEBUG_TRACE("====================MobileTracking_Get_Location====================\n");
+ sleep(3);
+ int return_value = 202;
+ if (check_operation == 1) {
+ /*
+ vconf_get_bool(VCONFKEY_SETAPPL_FIND_MY_MOBILE_REMOTE_CONTROL_BOOL, &rc_status));
+ if(true)
+ return_value = 202;
+ else
+ return_value = 1452;
+ */
+ _DEBUG_TRACE("checked : 1 =======return 202 =======\n");
+ *err_num = return_value;
+ } else {
+ return_value = OPERATION_SUCCEEDED; // exec_location();
+ _DEBUG_TRACE("checked : 0 =======return :%d =======\n", return_value);
+ *err_num = return_value;
+ }
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}
+
+static sync_agent_dev_return_e _mobile_tracking_operation_stop(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+
+ /* AMT OFF */
+ _DEBUG_TRACE("====================MobileTracking_Operation_Stop====================\n");
+ sleep(3);
+
+ *err_num = OPERATION_SUCCEEDED;
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}
+
+static sync_agent_dev_return_e _mobile_tracking_operation(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+ /* AMT OFF */
+ _DEBUG_TRACE("====================MobileTracking_Operation====================\n");
+ sleep(3);
+ int return_value = 202;
+ if (check_operation == 1) {
+ *err_num = return_value;
+ } else {
+ *err_num = OPERATION_SUCCEEDED;
+ }
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+
+}
+
+static sync_agent_dev_return_e _forwarding_diver_request(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+
+ /* AMT OFF */
+ _DEBUG_TRACE("====================Forwarding_DiverRequest====================\n");
+ int return_value = 202;
+ if (check_operation == 1) {
+ /*
+ vconf_get_bool(VCONFKEY_SETAPPL_FIND_MY_MOBILE_REMOTE_CONTROL_BOOL, &rc_status));
+ if(true)
+ return_value = 202;
+ else
+ return_value = 1452;
+ */
+ //return return_value;
+ *err_num = return_value;
+ } else {
+ return_value = OPERATION_SUCCEEDED; // exec_call_forwarding();
+ _DEBUG_TRACE("checked : 0 =======return :%d =======\n", return_value);
+ *err_num = return_value;
+ }
+ /*
+ return CALL_AND_SMS_FORWARDING_FAILED;
+ return CALL_FORWARDING_FAILED;
+ return SMS_FORWARDING_FAILED;
+ */
+ //return return_value;
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+
+}
+
+static sync_agent_dev_return_e _master_key_lock_release(int platform, int *err_num, int check_operation)
+{
+ _INNER_FUNC_ENTER;
+ /* AMT OFF */
+ _DEBUG_TRACE("====================MasterKey_LockRelease====================\n");
+ _DEBUG_TRACE("check_operarion [%d]\n", check_operation);
+ int return_value = 202;
+ /* for test */
+
+ if (check_operation == 1) {
+ *err_num = return_value;
+ } else {
+
+ return_value = EXE_SUCCESS; //exec_unlock_lock();
+ /*
+ if (return_value == EXE_SUCCESS) {
+ *err_num = OPERATION_SUCCEEDED;
+ } else {
+ *err_num = OPERATION_SUCCEEDED;
+ }
+ */
+ }
+
+ _INNER_FUNC_EXIT;
+ return SYNC_AGENT_DEV_RETURN_SUCCESS;
+}