Fix for SAM Score 63/281363/3
authorJihoon Jung <jh8801.jung@samsung.com>
Fri, 16 Sep 2022 04:56:36 +0000 (13:56 +0900)
committerJihoon Jung <jh8801.jung@samsung.com>
Wed, 21 Sep 2022 02:23:50 +0000 (11:23 +0900)
Change-Id: I7b0bdf097b2656479ab74b35d049eb61c698537d
Signed-off-by: Jihoon Jung <jh8801.jung@samsung.com>
include/net_nfc_client_tag_internal.h
src/net_nfc_client_llcp.c
src/net_nfc_client_se.c
src/net_nfc_client_tag.c
src/net_nfc_client_tag_felica.c
src/net_nfc_client_tag_jewel.c
src/nfc_tag.c

index 28d76d3..680fb40 100755 (executable)
@@ -28,6 +28,10 @@ gboolean net_nfc_client_tag_is_connected(void);
 
 net_nfc_target_info_s *net_nfc_client_tag_get_client_target_info(void);
 
+net_nfc_error_e net_nfc_get_target_info_from_device_type(net_nfc_target_handle_h handle, net_nfc_target_type_e device_type, net_nfc_target_info_s** target_info);
+
+net_nfc_error_e net_nfc_get_tag_info_value_from_key(net_nfc_target_info_s* target_info, const char* key, int valid_length, data_h* data);
+
 #ifdef __cplusplus
 }
 #endif
index 4eded74..e20366a 100755 (executable)
 
 /* LCOV_EXCL_START */
 
+#define CHECK_INITIALIZED() \
+               do { \
+                       /* LCOV_EXCL_START */ \
+                       if (llcp_proxy == NULL) { \
+                               if (net_nfc_client_llcp_init() != NET_NFC_OK) { \
+                                       DEBUG_ERR_MSG("llcp_proxy fail"); \
+                                       return NET_NFC_NOT_INITIALIZED; \
+                               } \
+                       } \
+                       \
+                       if (net_nfc_client_manager_is_activated() == false) \
+                               return NET_NFC_NOT_ACTIVATED; \
+                       /* LCOV_EXCL_STOP */ \
+               } while (0)
+
 typedef struct _LlcpFuncData LlcpFuncData;
 
 struct _LlcpFuncData {
@@ -104,6 +119,23 @@ static void llcp_incoming(NetNfcGDbusLlcp *object,
        guint incoming_socket,
        gpointer user_data);
 
+static LlcpFuncData* _create_func_data(void *callback, void *user_data)
+{
+       LlcpFuncData* func_data = NULL;
+
+       func_data = g_new0(LlcpFuncData, 1);
+       if (func_data == NULL) {
+               DEBUG_ERR_MSG("g_new0 failed");
+
+               return NULL;
+       }
+
+       func_data->callback = (gpointer)callback;
+       func_data->user_data = user_data;
+
+       return func_data;
+}
+
 void llcp_socket_data_append(net_nfc_llcp_internal_socket_s *socket_data)
 {
        if (socket_data_list == NULL)
@@ -659,27 +691,10 @@ net_nfc_error_e net_nfc_client_llcp_config(net_nfc_llcp_config_info_h config,
 
        if (config == NULL)
                return NET_NFC_NULL_PARAMETER;
+       
+       CHECK_INITIALIZED();
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
-
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        memcpy(&llcp_config, config, sizeof(net_nfc_llcp_config_info_s));
 
@@ -706,16 +721,7 @@ net_nfc_error_e net_nfc_client_llcp_config_sync
        GVariant *variant = NULL;
        GError *error = NULL;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
-
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
+       CHECK_INITIALIZED();
 
        memcpy(&llcp_config, config, sizeof(net_nfc_llcp_config_info_s));
 
@@ -763,12 +769,7 @@ net_nfc_error_e net_nfc_client_llcp_listen(net_nfc_llcp_socket_t socket,
        LlcpFuncData *func_data;
        net_nfc_llcp_internal_socket_s *socket_data = NULL;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -780,19 +781,7 @@ net_nfc_error_e net_nfc_client_llcp_listen(net_nfc_llcp_socket_t socket,
        socket_data->service_name = (uint8_t *)g_strdup(service_name);
        socket_data->sap = sap;
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_listen(llcp_proxy,
                                GPOINTER_TO_UINT(llcp_handle),
@@ -825,12 +814,7 @@ net_nfc_error_e net_nfc_client_llcp_listen_sync(net_nfc_llcp_socket_t socket,
        if (out_socket == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (service_name == NULL) {
                DEBUG_ERR_MSG("service_name is empty");
@@ -847,10 +831,6 @@ net_nfc_error_e net_nfc_client_llcp_listen_sync(net_nfc_llcp_socket_t socket,
        socket_data->service_name = (uint8_t *)g_strdup(service_name);
        socket_data->sap = sap;
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        if (net_nfc_gdbus_llcp_call_listen_sync(llcp_proxy,
                                        GPOINTER_TO_UINT(llcp_handle),
                                        socket_data->client_socket,
@@ -892,26 +872,9 @@ net_nfc_error_e net_nfc_client_llcp_accept(net_nfc_llcp_socket_t socket,
 {
        LlcpFuncData *func_data;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
-
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
+       CHECK_INITIALIZED();
 
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_accept(llcp_proxy,
                GPOINTER_TO_UINT(llcp_handle),
@@ -929,16 +892,7 @@ net_nfc_error_e net_nfc_client_llcp_accept_sync(net_nfc_llcp_socket_t socket)
        net_nfc_error_e result;
        GError *error = NULL;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
-
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_llcp_call_accept_sync(llcp_proxy,
                GPOINTER_TO_UINT(llcp_handle),
@@ -964,26 +918,9 @@ net_nfc_error_e net_nfc_client_llcp_reject(net_nfc_llcp_socket_t socket,
 {
        LlcpFuncData *func_data;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
-
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
+       CHECK_INITIALIZED();
 
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_reject(llcp_proxy,
                GPOINTER_TO_UINT(llcp_handle),
@@ -1001,16 +938,7 @@ net_nfc_error_e net_nfc_client_llcp_reject_sync(net_nfc_llcp_socket_t socket)
        net_nfc_error_e result;
        GError *error = NULL;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
-
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_llcp_call_reject_sync(llcp_proxy,
                GPOINTER_TO_UINT(llcp_handle),
@@ -1041,12 +969,7 @@ net_nfc_error_e net_nfc_client_llcp_connect(net_nfc_llcp_socket_t socket,
        if (service_name == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1054,19 +977,7 @@ net_nfc_error_e net_nfc_client_llcp_connect(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_connect(llcp_proxy,
                                GPOINTER_TO_UINT(llcp_handle),
@@ -1097,12 +1008,7 @@ net_nfc_error_e net_nfc_client_llcp_connect_sync(net_nfc_llcp_socket_t socket,
        if (service_name == NULL || out_socket == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1110,10 +1016,6 @@ net_nfc_error_e net_nfc_client_llcp_connect_sync(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        if (net_nfc_gdbus_llcp_call_connect_sync(llcp_proxy,
                                        GPOINTER_TO_UINT(llcp_handle),
                                        socket_data->client_socket,
@@ -1159,12 +1061,7 @@ net_nfc_error_e net_nfc_client_llcp_connect_sap(net_nfc_llcp_socket_t socket,
        if (sap == 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1172,19 +1069,7 @@ net_nfc_error_e net_nfc_client_llcp_connect_sap(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_connect_sap(llcp_proxy,
                                GPOINTER_TO_UINT(llcp_handle),
@@ -1219,12 +1104,7 @@ net_nfc_error_e net_nfc_client_llcp_connect_sap_sync(
        if (sap == 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1232,10 +1112,6 @@ net_nfc_error_e net_nfc_client_llcp_connect_sap_sync(
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        if (net_nfc_gdbus_llcp_call_connect_sap_sync(llcp_proxy,
                                        GPOINTER_TO_UINT(llcp_handle),
                                        socket_data->client_socket,
@@ -1285,16 +1161,7 @@ net_nfc_error_e net_nfc_client_llcp_send(net_nfc_llcp_socket_t socket,
        if (socket <= 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
-
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1302,15 +1169,7 @@ net_nfc_error_e net_nfc_client_llcp_send(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        variant = net_nfc_util_gdbus_data_to_variant(data);
 
@@ -1343,12 +1202,7 @@ net_nfc_error_e net_nfc_client_llcp_send_sync(net_nfc_llcp_socket_t socket,
        if (socket <= 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1356,10 +1210,6 @@ net_nfc_error_e net_nfc_client_llcp_send_sync(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        variant = net_nfc_util_gdbus_data_to_variant(data);
 
        if (net_nfc_gdbus_llcp_call_send_sync(llcp_proxy,
@@ -1405,12 +1255,7 @@ net_nfc_error_e net_nfc_client_llcp_send_to(net_nfc_llcp_socket_t socket,
        if (socket <= 0 || sap == 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1418,19 +1263,7 @@ net_nfc_error_e net_nfc_client_llcp_send_to(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        variant = net_nfc_util_gdbus_data_to_variant(data);
 
@@ -1465,12 +1298,7 @@ net_nfc_error_e net_nfc_client_llcp_send_to_sync(net_nfc_llcp_socket_t socket,
        if (socket <= 0 || sap == 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1478,10 +1306,6 @@ net_nfc_error_e net_nfc_client_llcp_send_to_sync(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        variant = net_nfc_util_gdbus_data_to_variant(data);
 
        if (net_nfc_gdbus_llcp_call_send_to_sync(llcp_proxy,
@@ -1522,12 +1346,7 @@ net_nfc_error_e net_nfc_client_llcp_receive(net_nfc_llcp_socket_t socket,
        if (socket <= 0 || request_length == 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1535,19 +1354,7 @@ net_nfc_error_e net_nfc_client_llcp_receive(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_receive(llcp_proxy,
                                GPOINTER_TO_UINT(llcp_handle),
@@ -1578,12 +1385,7 @@ net_nfc_error_e net_nfc_client_llcp_receive_sync(net_nfc_llcp_socket_t socket,
        if (socket <= 0 || request_length == 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1591,10 +1393,6 @@ net_nfc_error_e net_nfc_client_llcp_receive_sync(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        if (net_nfc_gdbus_llcp_call_receive_sync(llcp_proxy,
                GPOINTER_TO_UINT(llcp_handle),
                socket_data->client_socket,
@@ -1628,12 +1426,7 @@ net_nfc_error_e net_nfc_client_llcp_receive_from(net_nfc_llcp_socket_t socket,
        if (socket <= 0 || request_length == 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1641,15 +1434,7 @@ net_nfc_error_e net_nfc_client_llcp_receive_from(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_receive_from(llcp_proxy,
                                GPOINTER_TO_UINT(llcp_handle),
@@ -1685,12 +1470,7 @@ net_nfc_error_e net_nfc_client_llcp_receive_from_sync(
        if (socket <= 0 || request_length == 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1698,10 +1478,6 @@ net_nfc_error_e net_nfc_client_llcp_receive_from_sync(
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        if (net_nfc_gdbus_llcp_call_receive_from_sync(llcp_proxy,
                GPOINTER_TO_UINT(llcp_handle),
                socket_data->client_socket,
@@ -1736,12 +1512,7 @@ net_nfc_error_e net_nfc_client_llcp_close(net_nfc_llcp_socket_t socket,
        if (socket <= 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1749,19 +1520,7 @@ net_nfc_error_e net_nfc_client_llcp_close(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_close(llcp_proxy,
                                GPOINTER_TO_UINT(llcp_handle),
@@ -1786,12 +1545,7 @@ net_nfc_error_e net_nfc_client_llcp_close_sync(net_nfc_llcp_socket_t socket)
        if (socket <= 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1799,10 +1553,6 @@ net_nfc_error_e net_nfc_client_llcp_close_sync(net_nfc_llcp_socket_t socket)
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        if (net_nfc_gdbus_llcp_call_close_sync(llcp_proxy,
                GPOINTER_TO_UINT(llcp_handle),
                socket_data->client_socket,
@@ -1838,12 +1588,7 @@ net_nfc_error_e net_nfc_client_llcp_disconnect(net_nfc_llcp_socket_t socket,
        if (socket <= 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1851,19 +1596,7 @@ net_nfc_error_e net_nfc_client_llcp_disconnect(net_nfc_llcp_socket_t socket,
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
-       func_data = g_new0(LlcpFuncData, 1);
-       if (func_data == NULL) {
-               DEBUG_ERR_MSG("g_new0 failed");
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->callback = (gpointer)callback;
-       func_data->user_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_llcp_call_disconnect(llcp_proxy,
                                GPOINTER_TO_UINT(llcp_handle),
@@ -1889,12 +1622,7 @@ net_nfc_error_e net_nfc_client_llcp_disconnect_sync(
        if (socket <= 0)
                return NET_NFC_INVALID_PARAM;
 
-       if (llcp_proxy == NULL) {
-               if (net_nfc_client_llcp_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("llcp_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        socket_data = llcp_socket_data_find(socket);
        if (socket_data == NULL) {
@@ -1902,10 +1630,6 @@ net_nfc_error_e net_nfc_client_llcp_disconnect_sync(
                return NET_NFC_LLCP_INVALID_SOCKET;
        }
 
-       /* prevent executing daemon when nfc is off */
-       if (net_nfc_client_manager_is_activated() == false)
-               return NET_NFC_NOT_ACTIVATED;
-
        if (net_nfc_gdbus_llcp_call_disconnect_sync(llcp_proxy,
                GPOINTER_TO_UINT(llcp_handle),
                socket_data->client_socket,
index 94b5aad..7c0bcd8 100755 (executable)
 
 /* LCOV_EXCL_START */
 
+#define CHECK_INITIALIZED() \
+               do { \
+                       if (se_proxy == NULL) { \
+                               if (net_nfc_client_se_init() != NET_NFC_OK) { \
+                                       DEBUG_ERR_MSG("se_proxy fail"); \
+                                       return NET_NFC_NOT_INITIALIZED; \
+                               } \
+                       } \
+               } while (0)
+
+#define CHECK_AUTO_START_PROXY() \
+               do { \
+                       if (auto_start_proxy == NULL) { \
+                               GError* error = NULL; \
+                               \
+                               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync( \
+                                       G_BUS_TYPE_SYSTEM, \
+                                       G_DBUS_PROXY_FLAGS_NONE, \
+                                       "org.tizen.NetNfcService", \
+                                       "/org/tizen/NetNfcService/SecureElement", \
+                                       NULL, \
+                                       &error); \
+                               if (auto_start_proxy == NULL) { \
+                                       if (error != NULL) { \
+                                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message); \
+                                               g_error_free(error); \
+                                       } \
+                                       \
+                                       return NET_NFC_UNKNOWN_ERROR; \
+                               } \
+                       } \
+               } while (0)
+
 typedef struct _SeFuncData SeFuncData;
 
 struct _SeFuncData {
@@ -103,6 +136,22 @@ static void se_rf_detected(GObject *source_object,
                        gint arg_se_type,
                        GVariant *arg_data);
 
+static SeFuncData* _create_func_data(void* callback, void* user_data)
+{
+       SeFuncData* func_data = NULL;
+
+       func_data = g_new0(SeFuncData, 1);
+       if (func_data == NULL) {
+               DEBUG_ERR_MSG("g_new0 failed");
+
+               return NULL;
+       }
+
+       func_data->se_callback = (gpointer)callback;
+       func_data->se_data = user_data;
+
+       return func_data;
+}
 
 static void se_ese_detected(GObject *source_object,
                        guint arg_handle,
@@ -436,24 +485,13 @@ net_nfc_error_e net_nfc_client_se_set_secure_element_type(
 {
        SeFuncData *func_data;
 
-       if (se_proxy == NULL) {
-               if (net_nfc_client_se_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("se_proxy fail");
-                       /* FIXME : return result of this error */
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        /* prevent executing daemon when nfc is off */
        if (net_nfc_client_manager_is_activated() == false)
                return NET_NFC_NOT_ACTIVATED;
 
-       func_data = g_try_new0(SeFuncData, 1);
-       if (func_data == NULL)
-               return NET_NFC_ALLOC_FAIL;
-
-       func_data->se_callback = (gpointer)callback;
-       func_data->se_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_secure_element_call_set(
                                se_proxy,
@@ -473,12 +511,7 @@ net_nfc_error_e net_nfc_client_se_set_secure_element_type_sync(
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               if (net_nfc_client_se_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("se_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        /* prevent executing daemon when nfc is off */
        if (net_nfc_client_manager_is_activated() == false)
@@ -510,12 +543,7 @@ net_nfc_error_e net_nfc_client_se_get_secure_element_type_sync(
 #if 1
        GError *error = NULL;
 #endif
-       if (se_proxy == NULL) {
-               if (net_nfc_client_se_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("se_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        /* prevent executing daemon when nfc is off */
        if (net_nfc_client_manager_is_activated() == false)
@@ -554,12 +582,7 @@ net_nfc_error_e net_nfc_set_card_emulation_mode_sync(
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               if (net_nfc_client_se_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("se_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        /* prevent executing daemon when nfc is off */
        if (net_nfc_client_manager_is_activated() == false)
@@ -590,12 +613,7 @@ net_nfc_error_e net_nfc_get_card_emulation_mode_sync(
        gint type;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               if (net_nfc_client_se_init() != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("se_proxy fail");
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        /* prevent executing daemon when nfc is off */
        if (net_nfc_client_manager_is_activated() == false)
@@ -628,34 +646,11 @@ net_nfc_error_e net_nfc_client_se_open_internal_secure_element(
 {
        SeFuncData *func_data;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        /* allow this function even nfc is off */
 
-       func_data = g_try_new0(SeFuncData, 1);
-       if (func_data == NULL)
-               return NET_NFC_ALLOC_FAIL;
-
-       func_data->se_callback = (gpointer)callback;
-       func_data->se_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_secure_element_call_open_secure_element(
                                        auto_start_proxy,
@@ -680,25 +675,7 @@ net_nfc_error_e net_nfc_client_se_open_internal_secure_element_sync(
        if (handle == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        /* allow this function even nfc is off */
 
@@ -731,34 +708,11 @@ net_nfc_error_e net_nfc_client_se_close_internal_secure_element(
 {
        SeFuncData *func_data;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        /* allow this function even nfc is off */
 
-       func_data = g_try_new0(SeFuncData, 1);
-       if (func_data == NULL)
-               return NET_NFC_ALLOC_FAIL;
-
-       func_data->se_callback = (gpointer)callback;
-       func_data->se_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_secure_element_call_close_secure_element(
                auto_start_proxy,
@@ -778,25 +732,7 @@ net_nfc_error_e net_nfc_client_se_close_internal_secure_element_sync(
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        /* allow this function even nfc is off */
 
@@ -826,34 +762,11 @@ net_nfc_error_e net_nfc_client_se_get_atr(
 {
        SeFuncData *func_data;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        /* allow this function even nfc is off */
 
-       func_data = g_try_new0(SeFuncData, 1);
-       if (func_data == NULL)
-               return NET_NFC_ALLOC_FAIL;
-
-       func_data->se_callback = (gpointer)callback;
-       func_data->se_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_secure_element_call_get_atr(
                auto_start_proxy,
@@ -880,25 +793,7 @@ net_nfc_error_e net_nfc_client_se_get_atr_sync(
 
        *atr = NULL;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        /* allow this function even nfc is off */
 
@@ -933,25 +828,7 @@ net_nfc_error_e net_nfc_client_se_send_apdu(
        SeFuncData *func_data;
        GVariant *arg_data;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        /* allow this function even nfc is off */
 
@@ -959,15 +836,7 @@ net_nfc_error_e net_nfc_client_se_send_apdu(
        if (arg_data == NULL)
                return NET_NFC_INVALID_PARAM;
 
-       func_data = g_try_new0(SeFuncData, 1);
-       if (func_data == NULL) {
-               g_variant_unref(arg_data);
-
-               return NET_NFC_ALLOC_FAIL;
-       }
-
-       func_data->se_callback = (gpointer)callback;
-       func_data->se_data = user_data;
+       func_data = _create_func_data(callback, user_data);
 
        net_nfc_gdbus_secure_element_call_send_apdu(
                auto_start_proxy,
@@ -997,25 +866,7 @@ net_nfc_error_e net_nfc_client_se_send_apdu_sync(
 
        *response = NULL;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        /* allow this function even nfc is off */
 
@@ -1137,25 +988,7 @@ net_nfc_error_e net_nfc_client_se_set_transaction_fg_dispatch(int mode)
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        if (net_nfc_gdbus_secure_element_call_set_transaction_fg_dispatch_sync(
                auto_start_proxy,
@@ -1183,14 +1016,7 @@ net_nfc_error_e net_nfc_client_se_set_default_route_sync(
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_set_default_route_sync(
                se_proxy,
@@ -1224,14 +1050,7 @@ net_nfc_error_e net_nfc_client_se_is_activated_aid_handler_sync(
        if (activated == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_is_activated_aid_handler_sync(
                        se_proxy,
@@ -1266,14 +1085,7 @@ net_nfc_error_e net_nfc_client_se_is_activated_category_handler_sync(
        if (activated == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_is_activated_category_handler_sync(
                        se_proxy,
@@ -1309,14 +1121,7 @@ net_nfc_error_e net_nfc_client_se_get_registered_aids_count_sync(
        if (count == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_get_registered_aids_sync(
                        se_proxy,
@@ -1361,14 +1166,7 @@ net_nfc_error_e net_nfc_client_se_foreach_registered_aids_sync(
        if (callback == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_get_registered_aids_sync(
                        se_proxy,
@@ -1408,14 +1206,7 @@ net_nfc_error_e net_nfc_client_se_register_aids_sync(net_nfc_se_type_e se_type,
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_register_aid_sync(
                        se_proxy,
@@ -1443,14 +1234,7 @@ net_nfc_error_e net_nfc_client_se_unregister_aid_sync(net_nfc_se_type_e se_type,
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_unregister_aid_sync(
                        se_proxy,
@@ -1477,14 +1261,7 @@ net_nfc_error_e net_nfc_client_se_unregister_aids_sync(net_nfc_se_type_e se_type
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_unregister_aids_sync(
                        se_proxy,
@@ -1517,14 +1294,7 @@ net_nfc_error_e net_nfc_client_se_foreach_registered_handlers_sync(
        if (callback == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_get_registered_handlers_sync(
                        se_proxy,
@@ -1564,25 +1334,7 @@ net_nfc_error_e net_nfc_client_se_add_route_aid_sync(
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        if (net_nfc_gdbus_secure_element_call_add_route_aid_sync(
                auto_start_proxy,
@@ -1615,25 +1367,7 @@ net_nfc_error_e net_nfc_client_se_remove_route_aid_sync(
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        if (net_nfc_gdbus_secure_element_call_remove_route_aid_sync(
                auto_start_proxy,
@@ -1662,25 +1396,7 @@ net_nfc_error_e net_nfc_client_se_remove_package_aids_sync(
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (auto_start_proxy == NULL) {
-               GError *error = NULL;
-
-               auto_start_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync(
-                       G_BUS_TYPE_SYSTEM,
-                       G_DBUS_PROXY_FLAGS_NONE,
-                       "org.tizen.NetNfcService",
-                       "/org/tizen/NetNfcService/SecureElement",
-                       NULL,
-                       &error);
-               if (auto_start_proxy == NULL) {
-                       if (error != NULL) {
-                               DEBUG_ERR_MSG("Can not create proxy : %s", error->message);
-                               g_error_free(error);
-                       }
-
-                       return NET_NFC_UNKNOWN_ERROR;
-               }
-       }
+       CHECK_AUTO_START_PROXY();
 
        if (net_nfc_gdbus_secure_element_call_remove_package_aids_sync(
                auto_start_proxy,
@@ -1707,14 +1423,7 @@ net_nfc_error_e net_nfc_client_se_set_preferred_handler_sync(bool state)
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_set_preferred_handler_sync(
                se_proxy,
@@ -1739,14 +1448,7 @@ net_nfc_error_e net_nfc_client_se_get_handler_storage_info_sync(
        net_nfc_error_e result = NET_NFC_OK;
        GError *error = NULL;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_get_handler_storage_info_sync(
                se_proxy,
@@ -1775,14 +1477,7 @@ net_nfc_error_e net_nfc_client_se_get_conflict_handlers_sync(
        GError *error = NULL;
        GVariant *packages = NULL;
 
-       if (se_proxy == NULL) {
-               result = net_nfc_client_se_init();
-               if (result != NET_NFC_OK) {
-                       DEBUG_ERR_MSG("net_nfc_client_se_init failed, [%d]", result);
-
-                       return NET_NFC_NOT_INITIALIZED;
-               }
-       }
+       CHECK_INITIALIZED();
 
        if (net_nfc_gdbus_secure_element_call_get_conflict_handlers_sync(
                se_proxy,
index 3991271..4e87316 100755 (executable)
@@ -455,6 +455,40 @@ net_nfc_target_info_s *net_nfc_client_tag_get_client_target_info(void)
        return client_target_info;
 }
 
+net_nfc_error_e net_nfc_get_target_info_from_device_type(net_nfc_target_handle_h handle, net_nfc_target_type_e device_type, net_nfc_target_info_s** target_info)
+{
+       if (handle == NULL)
+               return NET_NFC_NULL_PARAMETER;
+
+       if (net_nfc_client_tag_is_connected() == FALSE)
+               return NET_NFC_OPERATION_FAIL;
+
+       *target_info = net_nfc_client_tag_get_client_target_info();
+       if (*target_info == NULL)
+               return NET_NFC_NO_DATA_FOUND;
+
+       if ((*target_info)->devType != NET_NFC_FELICA_PICC) {
+               DEBUG_CLIENT_MSG("only felica tag is available");
+               return NET_NFC_NOT_ALLOWED_OPERATION;
+       }
+
+       return NET_NFC_OK;
+}
+
+net_nfc_error_e net_nfc_get_tag_info_value_from_key(net_nfc_target_info_s* target_info, const char* key, int valid_length, data_h* data)
+{
+       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
+               key,
+               data) != NET_NFC_OK) {
+               return NET_NFC_NO_DATA_FOUND;
+       }
+
+       if (((data_s*)*data)->length != valid_length)
+               return NET_NFC_OUT_OF_BOUND;
+
+       return NET_NFC_OK;
+}
+
 NET_NFC_EXPORT_API
 net_nfc_error_e net_nfc_client_tag_is_tag_connected_sync(
                                        net_nfc_target_type_e *dev_type)
index 70053c3..45e126b 100755 (executable)
@@ -52,20 +52,9 @@ net_nfc_error_e net_nfc_client_felica_poll(net_nfc_target_handle_h handle,
 
        uint8_t send_buffer[6] = { 0x00, };
 
-       if (handle == NULL)
-               return NET_NFC_NULL_PARAMETER;
-
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_FELICA_PICC) {
-               DEBUG_CLIENT_MSG("only felica tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_FELICA_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        /* total size of requet command */
        send_buffer[0] = 0x06;
@@ -110,29 +99,16 @@ net_nfc_error_e net_nfc_client_felica_request_service(
 
        int i;
 
-       if (handle == NULL || area_service_list == NULL)
+       if (area_service_list == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_FELICA_PICC) {
-               DEBUG_CLIENT_MSG("only felica tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
-
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               FELICA_TAG_KEY,
-                               &IDm) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_FELICA_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
-       if (((data_s*)IDm)->length != 8)
-               return NET_NFC_OUT_OF_BOUND;
+       ret = net_nfc_get_tag_info_value_from_key(target_info, FELICA_TAG_KEY, 8, &IDm);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        if (number_of_area_service > 32)
                return NET_NFC_OUT_OF_BOUND;
@@ -198,29 +174,13 @@ net_nfc_error_e net_nfc_client_felica_request_response(
 
        uint8_t send_buffer[10] = { 0x00, };
 
-       if (handle == NULL)
-               return NET_NFC_NULL_PARAMETER;
-
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_FELICA_PICC) {
-               DEBUG_CLIENT_MSG("only felica tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_FELICA_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               FELICA_TAG_KEY,
-                               &IDm) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
-
-       if (((data_s*)IDm)->length != 8)
-               return NET_NFC_OUT_OF_BOUND;
+       ret = net_nfc_get_tag_info_value_from_key(target_info, FELICA_TAG_KEY, 8, &IDm);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        send_buffer[0] = 0xA;
        send_buffer[1] = FELICA_CMD_REQ_RESPONSE;
@@ -262,29 +222,16 @@ net_nfc_error_e net_nfc_client_felica_read_without_encryption(
 
        int i;
 
-       if (handle == NULL || service_list == NULL || block_list == NULL)
+       if (service_list == NULL || block_list == NULL)
                return NET_NFC_NULL_PARAMETER;
 
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_FELICA_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_FELICA_PICC) {
-               DEBUG_CLIENT_MSG("only felica tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
-
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               FELICA_TAG_KEY,
-                               &IDm) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
-
-       if (((data_s*)IDm)->length != 8)
-               return NET_NFC_OUT_OF_BOUND;
+       ret = net_nfc_get_tag_info_value_from_key(target_info, FELICA_TAG_KEY, 8, &IDm);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        if (number_of_services > 16)
                return NET_NFC_OUT_OF_BOUND;
@@ -364,30 +311,18 @@ net_nfc_error_e net_nfc_client_felica_write_without_encryption(
 
        int i;
 
-       if (handle == NULL || service_list == NULL ||
+       if (service_list == NULL ||
                        block_list == NULL || data == NULL) {
                return NET_NFC_NULL_PARAMETER;
        }
 
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_FELICA_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
-       if (target_info->devType != NET_NFC_FELICA_PICC) {
-               DEBUG_CLIENT_MSG("only felica tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
-
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               FELICA_TAG_KEY,
-                               &IDm) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
-
-       if (((data_s*)IDm)->length != 8)
-               return NET_NFC_OUT_OF_BOUND;
+       ret = net_nfc_get_tag_info_value_from_key(target_info, FELICA_TAG_KEY, 8, &IDm);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        if (number_of_services > 16)
                return NET_NFC_OUT_OF_BOUND;
@@ -465,30 +400,13 @@ net_nfc_error_e net_nfc_client_felica_request_system_code(
 
        uint8_t send_buffer[10] = { 0x00, };
 
-       if (handle == NULL)
-               return NET_NFC_NULL_PARAMETER;
-
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_FELICA_PICC) {
-               DEBUG_CLIENT_MSG("only felica tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
-
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               FELICA_TAG_KEY,
-                               &IDm) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
-
-       if (((data_s*)IDm)->length != 8)
-               return NET_NFC_OUT_OF_BOUND;
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_FELICA_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
+       ret = net_nfc_get_tag_info_value_from_key(target_info, FELICA_TAG_KEY, 8, &IDm);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        send_buffer[0] = 0xA;
        send_buffer[1] = FELICA_CMD_REQ_SYSTEM_CODE;
index abb212a..c3b27f5 100755 (executable)
@@ -53,20 +53,9 @@ net_nfc_error_e net_nfc_client_jewel_read_id(net_nfc_target_handle_h handle,
 
        uint8_t send_buffer[9] = {0x00, };
 
-       if (handle == NULL)
-               return NET_NFC_NULL_PARAMETER;
-
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_JEWEL_PICC) {
-               DEBUG_CLIENT_MSG("only Jewel tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_JEWEL_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        send_buffer[0] = JEWEL_CMD_RID;
 
@@ -98,33 +87,16 @@ net_nfc_error_e net_nfc_client_jewel_read_byte(net_nfc_target_handle_h handle,
 
        uint8_t send_buffer[9] = {0x00, };
 
-       if (handle == NULL)
-               return NET_NFC_NULL_PARAMETER;
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_JEWEL_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        if (block > 0xE || byte > 0x7)
                return NET_NFC_OUT_OF_BOUND;
 
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_JEWEL_PICC) {
-               DEBUG_CLIENT_MSG("only Jewel tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
-
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               JEWEL_TAG_KEY,
-                               &UID) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
-
-
-       if (((data_s*)UID)->length != 4)
-               return NET_NFC_OUT_OF_BOUND;
+       ret = net_nfc_get_tag_info_value_from_key(target_info, JEWEL_TAG_KEY, 4, &UID);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        /* command */
        send_buffer[0] = JEWEL_CMD_READ;
@@ -166,29 +138,13 @@ net_nfc_error_e net_nfc_client_jewel_read_all(net_nfc_target_handle_h handle,
 
        uint8_t send_buffer[9] = {0x00, };
 
-       if (handle == NULL)
-               return NET_NFC_NULL_PARAMETER;
-
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_JEWEL_PICC) {
-               DEBUG_CLIENT_MSG("only Jewel tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_JEWEL_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               JEWEL_TAG_KEY,
-                               &UID) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
-
-       if (((data_s*)UID)->length != 4)
-               return NET_NFC_OUT_OF_BOUND;
+       ret = net_nfc_get_tag_info_value_from_key(target_info, JEWEL_TAG_KEY, 4, &UID);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        /* command */
        send_buffer[0] = JEWEL_CMD_RALL;
@@ -234,27 +190,16 @@ net_nfc_error_e net_nfc_client_jewel_write_with_erase(
 
        uint8_t send_buffer[9] = {0x00, };
 
-       if (handle == NULL)
-               return NET_NFC_NULL_PARAMETER;
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_JEWEL_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        if (block > 0xE || byte > 0x7)
                return NET_NFC_OUT_OF_BOUND;
 
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               JEWEL_TAG_KEY,
-                               &UID) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
-
-       if (((data_s*)UID)->length != 4)
-               return NET_NFC_OUT_OF_BOUND;
+       ret = net_nfc_get_tag_info_value_from_key(target_info, JEWEL_TAG_KEY, 4, &UID);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        /* command */
        send_buffer[0] = JEWEL_CMD_WRITE_E;
@@ -301,32 +246,16 @@ net_nfc_error_e net_nfc_client_jewel_write_with_no_erase(
 
        uint8_t send_buffer[9] = {0x00, };
 
-       if (handle == NULL)
-               return NET_NFC_NULL_PARAMETER;
+       int ret = net_nfc_get_target_info_from_device_type(handle, NET_NFC_JEWEL_PICC, &target_info);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        if (block > 0xE || byte > 0x7)
                return NET_NFC_OUT_OF_BOUND;
 
-       if (net_nfc_client_tag_is_connected() == FALSE)
-               return NET_NFC_OPERATION_FAIL;
-
-       target_info = net_nfc_client_tag_get_client_target_info();
-       if (target_info == NULL)
-               return NET_NFC_NO_DATA_FOUND;
-
-       if (target_info->devType != NET_NFC_JEWEL_PICC) {
-               DEBUG_CLIENT_MSG("only Jewel tag is available");
-               return NET_NFC_NOT_ALLOWED_OPERATION;
-       }
-
-       if (net_nfc_get_tag_info_value((net_nfc_target_info_h)target_info,
-                               JEWEL_TAG_KEY,
-                               &UID) != NET_NFC_OK) {
-               return NET_NFC_NO_DATA_FOUND;
-       }
-
-       if (((data_s*)UID)->length != 4)
-               return NET_NFC_OUT_OF_BOUND;
+       ret = net_nfc_get_tag_info_value_from_key(target_info, JEWEL_TAG_KEY, 4, &UID);
+       if (ret != NET_NFC_OK)
+               return ret;
 
        /* command */
        send_buffer[0] = JEWEL_CMD_WRITE_NE;
index a476b82..e26ef87 100755 (executable)
 
 #include "nfc_common.h"
 
+typedef enum {
+       NFC_TAG_OPERATION_FORMAT_NDEF,
+       NFC_TAG_OPERATION_READ_NDEF,
+       NFC_TAG_OPERATION_WRITE_NDEF,
+       NFC_TAG_OPERATION_TRANSCEIVE,
+       NFC_TAG_OPERATION_MIFARE_AUTHENTICATION_WITH_KEYA,
+       NFC_TAG_OPERATION_MIFARE_AUTHENTICATION_WITH_KEYB,
+       NFC_TAG_OPERATION_MIFARE_READ_BLOCK,
+       NFC_TAG_OPERATION_MIFARE_WRITE_BLOCK,
+       NFC_TAG_OPERATION_MIFARE_WRITE_PAGE,
+       NFC_TAG_OPERATION_MIFARE_INCREMENT,
+       NFC_TAG_OPERATION_MIFARE_DECREMENT,
+       NFC_TAG_OPERATION_MIFARE_TRANSFER,
+       NFC_TAG_OPERATION_MIFARE_RESTORE
+} nfc_tag_operation;
+
 /**
  * @brief The default factory key.
  * @details The key is 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
  * @ingroup CAPI_NETWORK_NFC_TAG_MIFARE_MODULE
  */
-const unsigned char NFC_TAG_MIFARE_KEY_DEFAULT[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+const unsigned char NFC_TAG_MIFARE_KEY_DEFAULT[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
 
 /**
  * @brief The well-known key for tags formatted according to the MIFARE Application Directory (MAD) specification.
  * @details The key is 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5
  * @ingroup CAPI_NETWORK_NFC_TAG_MIFARE_MODULE
  */
-const unsigned char NFC_TAG_MIFARE_KEY_APPLICATION_DIRECTORY[6] = {0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5};
+const unsigned char NFC_TAG_MIFARE_KEY_APPLICATION_DIRECTORY[6] = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5 };
 
 /**
  * @brief The well-known key for tags formatted according to the NDEF on Mifare Classic specification.
  * @details The key is 0xD3, 0xF7, 0xD3, 0xF7, 0xD3, 0xF7
  * @ingroup CAPI_NETWORK_NFC_TAG_MIFARE_MODULE
  */
-const unsigned char NFC_TAG_MIFARE_KEY_NFC_FORUM[6] = {0xD3, 0xF7, 0xD3, 0xF7, 0xD3, 0xF7};
+const unsigned char NFC_TAG_MIFARE_KEY_NFC_FORUM[6] = { 0xD3, 0xF7, 0xD3, 0xF7, 0xD3, 0xF7 };
 
 /* LCOV_EXCL_START */
-static void _tag_format_ndef_cb(net_nfc_error_e result,
-       void *user_data)
+static void _tag_format_ndef_cb(net_nfc_error_e result, void *user_data)
 {
        nfc_callback_s *user_param = user_data;
        nfc_tag_format_completed_cb callback = NULL;
@@ -58,71 +73,101 @@ static void _tag_format_ndef_cb(net_nfc_error_e result,
 
        free(user_param);
 }
-/* LCOV_EXCL_STOP */
+static void _tag_read_ndef_cb(net_nfc_error_e result, ndef_message_h message, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_tag_read_completed_cb callback = NULL;
 
-int nfc_tag_format_ndef(nfc_tag_h tag,
-       unsigned char *key,
-       int key_size,
-       nfc_tag_format_completed_cb callback,
-       void *user_data)
+       LOG_BEGIN();
+
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_tag_read_completed_cb)user_param->callback;
+
+       if (callback != NULL) {
+               callback(nfc_common_convert_error_code(__func__, result),
+                       (nfc_ndef_message_h)message,
+                       user_param->user_data);
+       }
+
+       free(user_param);
+}
+static void _tag_write_ndef_cb(net_nfc_error_e result, void* user_data)
 {
-       int ret;
-       data_h key_data = NULL;
+       nfc_callback_s* user_param = user_data;
+       nfc_tag_write_completed_cb callback = NULL;
 
        LOG_BEGIN();
 
-       CHECK_SUPPORTED(NFC_TAG_FEATURE);
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
 
-       /* LCOV_EXCL_START */
-       CHECK_INIT();
-       CHECK_INVALID(tag == NULL);
-       CHECK_ACTIVATED();
-       CHECK_APP_PERMISSION();
+       callback = (nfc_tag_write_completed_cb)user_param->callback;
 
-       ret = net_nfc_create_data(&key_data, key, key_size);
-       if (ret == NET_NFC_OK) {
-               net_nfc_target_handle_h handle = NULL;
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
 
-               ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag,
-                       &handle);
-               if (ret == NET_NFC_OK) {
-                       nfc_callback_s *parameter = NULL;
+       free(user_param);
+}
+static void _tag_transceive_data_cb(net_nfc_error_e result, data_h arg_data, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_tag_transceive_completed_cb callback = NULL;
 
-                       parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
+       LOG_BEGIN();
 
-                       if (parameter != NULL) {
-                               parameter->callback = callback;
-                               parameter->user_data = user_data;
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
 
-                               ret = net_nfc_client_ndef_format(
-                                       handle,
-                                       key_data,
-                                       _tag_format_ndef_cb,
-                                       parameter);
-                               if (ret != NET_NFC_OK)
-                                       free(parameter);
-                       } else {
-                               ret = NET_NFC_ALLOC_FAIL;
-                       }
-               } else {
-                       LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
+       callback = (nfc_tag_transceive_completed_cb)user_param->callback;
+
+       if (callback != NULL) {
+               uint8_t* buffer = NULL;
+               uint32_t length = 0;
+
+               if (result == NET_NFC_OK && arg_data != NULL) {
+                       buffer = net_nfc_get_data_buffer(arg_data);
+                       length = net_nfc_get_data_length(arg_data);
                }
 
-               net_nfc_free_data(key_data);
-       } else {
-               LOG_ERR("net_nfc_create_data failed, [%d]", ret);
+               callback(nfc_common_convert_error_code(__func__, result),
+                       buffer,
+                       length,
+                       user_param->user_data);
        }
 
-       return nfc_common_convert_error_code(__func__, ret);
-       /* LCOV_EXCL_STOP */
+       free(user_param);
 }
+static void _mifare_authenticate_with_keyA_cb(net_nfc_error_e result, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_mifare_authenticate_with_keyA_completed_cb callback = NULL;
 
-/* LCOV_EXCL_START */
-static void _tag_read_ndef_cb(net_nfc_error_e result, ndef_message_h message,
-       void *user_data)
+       LOG_BEGIN();
+
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_mifare_authenticate_with_keyA_completed_cb)user_param->callback;
+
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+
+       free(user_param);
+}
+static void _mifare_authenticate_with_keyB_cb(net_nfc_error_e result, void* user_data)
 {
-       nfc_callback_s *user_param = user_data;
-       nfc_tag_read_completed_cb callback = NULL;
+       nfc_callback_suser_param = user_data;
+       nfc_mifare_authenticate_with_keyB_completed_cb callback = NULL;
 
        LOG_BEGIN();
 
@@ -131,89 +176,349 @@ static void _tag_read_ndef_cb(net_nfc_error_e result, ndef_message_h message,
                return;
        }
 
-       callback = (nfc_tag_read_completed_cb)user_param->callback;
+       callback = (nfc_mifare_authenticate_with_keyB_completed_cb)user_param->callback;
+
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+
+       free(user_param);
+}
+static void _mifare_read_block_cb(net_nfc_error_e result, data_h data, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_mifare_read_block_completed_cb callback;
+
+       LOG_BEGIN();
+
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_mifare_read_block_completed_cb)user_param->callback;
 
        if (callback != NULL) {
+               uint8_t* buffer = NULL;
+               int length = 0;
+
+               if (result == NET_NFC_OK && data != NULL) {
+                       buffer = net_nfc_get_data_buffer(data);
+                       length = net_nfc_get_data_length(data);
+               }
+
                callback(nfc_common_convert_error_code(__func__, result),
-                       (nfc_ndef_message_h)message,
+                       buffer,
+                       length,
                        user_param->user_data);
        }
 
        free(user_param);
 }
-/* LCOV_EXCL_STOP */
+static void _mifare_write_block_cb(net_nfc_error_e result, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_mifare_write_block_completed_cb callback = NULL;
 
-int nfc_tag_read_ndef(nfc_tag_h tag,
-       nfc_tag_read_completed_cb callback,
-       void * user_data)
+       LOG_BEGIN();
+
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_mifare_write_block_completed_cb)user_param->callback;
+
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+
+       free(user_param);
+}
+static void _mifare_write_page_cb(net_nfc_error_e result, void* user_data)
 {
-       int ret;
-       net_nfc_target_handle_h handle = NULL;
+       nfc_callback_s* user_param = user_data;
+       nfc_mifare_write_page_completed_cb callback = NULL;
 
-       CHECK_SUPPORTED(NFC_TAG_FEATURE);
+       LOG_BEGIN();
 
-       /* LCOV_EXCL_START */
-       CHECK_INIT();
-       CHECK_INVALID(tag == NULL);
-       CHECK_ACTIVATED();
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_mifare_write_page_completed_cb)user_param->callback;
+
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+
+       free(user_param);
+}
+static void _mifare_increment_cb(net_nfc_error_e result, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_mifare_increment_completed_cb callback = NULL;
+
+       LOG_BEGIN();
+
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_mifare_increment_completed_cb)user_param->callback;
+
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+
+       free(user_param);
+}
+static void _mifare_decrement_cb(net_nfc_error_e result, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_mifare_decrement_completed_cb callback = NULL;
+
+       LOG_BEGIN();
+
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_mifare_decrement_completed_cb)user_param->callback;
+
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+
+       free(user_param);
+}
+static void _mifare_transfer_cb(net_nfc_error_e result, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_mifare_transfer_completed_cb callback = NULL;
+
+       LOG_BEGIN();
+
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_mifare_transfer_completed_cb)user_param->callback;
+
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+
+       free(user_param);
+}
+static void _mifare_restore_cb(net_nfc_error_e result, void* user_data)
+{
+       nfc_callback_s* user_param = user_data;
+       nfc_mifare_restore_completed_cb callback = NULL;
+
+       LOG_BEGIN();
+
+       if (user_param == NULL) {
+               LOG_ERR("user_data is NULL");
+               return;
+       }
+
+       callback = (nfc_mifare_restore_completed_cb)user_param->callback;
+
+       if (callback != NULL)
+               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+
+       free(user_param);
+}
+/* LCOV_EXCL_STOP */
+
+int nfc_tag_process(nfc_tag_h tag, nfc_tag_operation operation, void* data, int index, int value, void* callback, void* user_data)
+{
+       int ret = NET_NFC_OPERATION_FAIL;
+
+       net_nfc_target_handle_h handle = NULL;
 
        ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
        if (ret == NET_NFC_OK) {
-               nfc_callback_s *parameter = NULL;
+               nfc_callback_sparameter = NULL;
 
-               parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
+               parameter = (nfc_callback_s*)malloc(sizeof(nfc_callback_s));
 
                if (parameter != NULL) {
                        parameter->callback = callback;
                        parameter->user_data = user_data;
 
-                       ret = net_nfc_client_ndef_read(
-                               handle,
-                               _tag_read_ndef_cb,
-                               parameter);
+                       switch (operation) {
+                       case NFC_TAG_OPERATION_FORMAT_NDEF:
+                               ret = net_nfc_client_ndef_format(
+                                       handle,
+                                       data,
+                                       _tag_format_ndef_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_READ_NDEF:
+                               ret = net_nfc_client_ndef_read(
+                                       handle,
+                                       _tag_read_ndef_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_WRITE_NDEF:
+                               ret = net_nfc_client_ndef_write(
+                                       handle,
+                                       data,
+                                       _tag_write_ndef_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_TRANSCEIVE:
+                               ret = net_nfc_client_transceive_data(
+                                       handle,
+                                       data,
+                                       _tag_transceive_data_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_AUTHENTICATION_WITH_KEYA:
+                               ret = net_nfc_client_mifare_authenticate_with_keyA(
+                                       handle,
+                                       index,
+                                       data,
+                                       _mifare_authenticate_with_keyA_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_AUTHENTICATION_WITH_KEYB:
+                               ret = net_nfc_client_mifare_authenticate_with_keyB(
+                                       handle,
+                                       index,
+                                       data,
+                                       _mifare_authenticate_with_keyB_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_READ_BLOCK:
+                               ret = net_nfc_client_mifare_read(
+                                       handle,
+                                       index,
+                                       _mifare_read_block_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_WRITE_BLOCK:
+                               ret = net_nfc_client_mifare_write_block(
+                                       handle,
+                                       index,
+                                       data,
+                                       _mifare_write_block_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_WRITE_PAGE:
+                               ret = net_nfc_client_mifare_write_page(
+                                       handle,
+                                       index,
+                                       data,
+                                       _mifare_write_page_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_INCREMENT:
+                               ret = net_nfc_client_mifare_increment(
+                                       handle,
+                                       index,
+                                       value,
+                                       _mifare_increment_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_DECREMENT:
+                               ret = net_nfc_client_mifare_decrement(
+                                       handle,
+                                       index,
+                                       value,
+                                       _mifare_decrement_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_TRANSFER:
+                               ret = net_nfc_client_mifare_transfer(
+                                       handle,
+                                       index,
+                                       _mifare_transfer_cb,
+                                       parameter);
+                               break;
+                       case NFC_TAG_OPERATION_MIFARE_RESTORE:
+                               ret = net_nfc_client_mifare_restore(
+                                       handle,
+                                       index,
+                                       _mifare_restore_cb,
+                                       parameter);
+                               break;
+                       default:
+                               break;
+                       }
+
                        if (ret != NET_NFC_OK)
                                free(parameter);
-               } else {
+               }
+               else {
                        ret = NET_NFC_ALLOC_FAIL;
                }
-       } else {
+       }
+       else {
                LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
        }
 
-       return nfc_common_convert_error_code(__func__, ret);
-       /* LCOV_EXCL_STOP */
+       return ret;
 }
 
-/* LCOV_EXCL_START */
-static void _tag_write_ndef_cb(net_nfc_error_e result,
-       void *user_data)
+int nfc_tag_format_ndef(nfc_tag_h tag,
+       unsigned char* key,
+       int key_size,
+       nfc_tag_format_completed_cb callback,
+       void* user_data)
 {
-       nfc_callback_s *user_param = user_data;
-       nfc_tag_write_completed_cb callback = NULL;
+       int ret;
+       data_h key_data = NULL;
 
        LOG_BEGIN();
 
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
+       CHECK_SUPPORTED(NFC_TAG_FEATURE);
+
+       /* LCOV_EXCL_START */
+       CHECK_INIT();
+       CHECK_INVALID(tag == NULL);
+       CHECK_ACTIVATED();
+       CHECK_APP_PERMISSION();
+
+       ret = net_nfc_create_data(&key_data, key, key_size);
+       if (ret == NET_NFC_OK) {
+               ret = nfc_tag_process(tag, NFC_TAG_OPERATION_FORMAT_NDEF, key_data, 0, 0, callback, user_data);
+
+               net_nfc_free_data(key_data);
+       }
+       else {
+               LOG_ERR("net_nfc_create_data failed, [%d]", ret);
        }
 
-       callback = (nfc_tag_write_completed_cb)user_param->callback;
+       return nfc_common_convert_error_code(__func__, ret);
+       /* LCOV_EXCL_STOP */
+}
 
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
+int nfc_tag_read_ndef(nfc_tag_h tag,
+       nfc_tag_read_completed_cb callback,
+       void* user_data)
+{
+       int ret;
 
-       free(user_param);
+       CHECK_SUPPORTED(NFC_TAG_FEATURE);
+
+       /* LCOV_EXCL_START */
+       CHECK_INIT();
+       CHECK_INVALID(tag == NULL);
+       CHECK_ACTIVATED();
+
+       ret = nfc_tag_process(tag, NFC_TAG_OPERATION_READ_NDEF, NULL, 0, 0, callback, user_data);
+
+       return nfc_common_convert_error_code(__func__, ret);
+       /* LCOV_EXCL_STOP */
 }
-/* LCOV_EXCL_STOP */
 
 int nfc_tag_write_ndef(nfc_tag_h tag,
        nfc_ndef_message_h msg,
        nfc_tag_write_completed_cb callback,
-       void *user_data)
+       voiduser_data)
 {
        int ret;
-       net_nfc_target_handle_h handle = NULL;
        unsigned int byte_size = 0;
        uint32_t max_len = 0;
        net_nfc_ndef_card_state_e state = NET_NFC_NDEF_CARD_INVALID;
@@ -250,74 +555,18 @@ int nfc_tag_write_ndef(nfc_tag_h tag,
        if (max_len < byte_size)
                return NFC_ERROR_NO_SPACE_ON_NDEF;
 
-       ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-       if (ret == NET_NFC_OK) {
-               nfc_callback_s *parameter = NULL;
-
-               parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-               if (parameter != NULL) {
-                       parameter->callback = callback;
-                       parameter->user_data = user_data;
 
-                       ret = net_nfc_client_ndef_write(
-                               handle,
-                               msg,
-                               _tag_write_ndef_cb,
-                               parameter);
-                       if (ret != NET_NFC_OK)
-                               free(parameter);
-               } else {
-                       ret = NET_NFC_ALLOC_FAIL;
-               }
-       } else {
-               LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-       }
+       ret = nfc_tag_process(tag, NFC_TAG_OPERATION_WRITE_NDEF, msg, 0, 0, callback, user_data);
 
        return nfc_common_convert_error_code(__func__, ret);
        /* LCOV_EXCL_STOP */
 }
 
-/* LCOV_EXCL_START */
-static void _tag_transceive_data_cb(net_nfc_error_e result, data_h arg_data,
-       void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_tag_transceive_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_tag_transceive_completed_cb)user_param->callback;
-
-       if (callback != NULL) {
-               uint8_t *buffer = NULL;
-               uint32_t length = 0;
-
-               if (result == NET_NFC_OK && arg_data != NULL) {
-                       buffer = net_nfc_get_data_buffer(arg_data);
-                       length = net_nfc_get_data_length(arg_data);
-               }
-
-               callback(nfc_common_convert_error_code(__func__, result),
-                       buffer,
-                       length,
-                       user_param->user_data);
-       }
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_tag_transceive(nfc_tag_h tag,
-       unsigned char *buffer,
+       unsigned charbuffer,
        int buffer_size,
        nfc_tag_transceive_completed_cb callback,
-       void *user_data)
+       voiduser_data)
 {
        int ret;
        data_h rawdata = NULL;
@@ -334,34 +583,11 @@ int nfc_tag_transceive(nfc_tag_h tag,
 
        ret = net_nfc_create_data(&rawdata, buffer, buffer_size);
        if (ret == NET_NFC_OK) {
-               net_nfc_target_handle_h handle = NULL;
-
-               ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-               if (ret == NET_NFC_OK) {
-                       nfc_callback_s *parameter = NULL;
-
-                       parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-                       if (parameter != NULL) {
-                               parameter->callback = callback;
-                               parameter->user_data = user_data;
-
-                               ret = net_nfc_client_transceive_data(
-                                       handle,
-                                       rawdata,
-                                       _tag_transceive_data_cb,
-                                       parameter);
-                               if (ret != NET_NFC_OK)
-                                       free(parameter);
-                       } else {
-                               ret = NET_NFC_ALLOC_FAIL;
-                       }
-               } else {
-                       LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-               }
+               ret = nfc_tag_process(tag, NFC_TAG_OPERATION_TRANSCEIVE, rawdata, 0, 0, callback, user_data);
 
                net_nfc_free_data(rawdata);
-       } else {
+       }
+       else {
                LOG_ERR("net_nfc_create_data failed, [%d]", ret);
        }
 
@@ -486,30 +712,6 @@ int nfc_tag_foreach_information(nfc_tag_h tag,
        /* LCOV_EXCL_STOP */
 }
 
-/* FIXME */
-/* LCOV_EXCL_START */
-static void _mifare_authenticate_with_keyA_cb(net_nfc_error_e result,
-       void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_authenticate_with_keyA_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_mifare_authenticate_with_keyA_completed_cb)user_param->callback;
-
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_mifare_authenticate_with_keyA(nfc_tag_h tag,
        int sector_index,
        unsigned char *auth_key,
@@ -529,32 +731,7 @@ int nfc_mifare_authenticate_with_keyA(nfc_tag_h tag,
 
        ret = net_nfc_create_data(&auth_key_data, auth_key, 6);
        if (ret == NET_NFC_OK) {
-               net_nfc_target_handle_h handle = NULL;
-
-               ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-               if (ret == NET_NFC_OK) {
-                       nfc_callback_s *parameter = NULL;
-
-                       parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-                       if (parameter != NULL) {
-                               parameter->callback = callback;
-                               parameter->user_data = user_data;
-
-                               ret = net_nfc_client_mifare_authenticate_with_keyA(
-                                       handle,
-                                       sector_index,
-                                       auth_key_data,
-                                       _mifare_authenticate_with_keyA_cb,
-                                       parameter);
-                               if (ret != NET_NFC_OK)
-                                       free(parameter);
-                       } else {
-                               ret = NET_NFC_ALLOC_FAIL;
-                       }
-               } else {
-                       LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-               }
+               ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_AUTHENTICATION_WITH_KEYA, auth_key_data, sector_index, 0, callback, user_data);
 
                net_nfc_free_data(auth_key_data);
        } else {
@@ -565,30 +742,6 @@ int nfc_mifare_authenticate_with_keyA(nfc_tag_h tag,
        /* LCOV_EXCL_STOP */
 }
 
-
-/* LCOV_EXCL_START */
-static void _mifare_authenticate_with_keyB_cb(net_nfc_error_e result,
-       void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_authenticate_with_keyB_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_mifare_authenticate_with_keyB_completed_cb)user_param->callback;
-
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_mifare_authenticate_with_keyB(nfc_tag_h tag,
        int sector_index,
        unsigned char *auth_key,
@@ -596,91 +749,30 @@ int nfc_mifare_authenticate_with_keyB(nfc_tag_h tag,
        void *user_data)
 {
        int ret;
-       data_h auth_key_data = NULL;
-
-       LOG_BEGIN();
-
-       CHECK_SUPPORTED(NFC_TAG_FEATURE);
-
-       /* LCOV_EXCL_START */
-       CHECK_INIT();
-       CHECK_INVALID(tag == NULL);
-       CHECK_INVALID(auth_key == NULL);
-       CHECK_ACTIVATED();
-
-       ret = net_nfc_create_data(&auth_key_data, auth_key, 6);
-       if (ret == NET_NFC_OK) {
-               net_nfc_target_handle_h handle = NULL;
-
-               ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-               if (ret == NET_NFC_OK) {
-                       nfc_callback_s *parameter = NULL;
-
-                       parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-                       if (parameter != NULL) {
-                               parameter->callback = callback;
-                               parameter->user_data = user_data;
-
-                               ret = net_nfc_client_mifare_authenticate_with_keyB(
-                                       handle,
-                                       sector_index,
-                                       auth_key_data,
-                                       _mifare_authenticate_with_keyB_cb,
-                                       parameter);
-                               if (ret != NET_NFC_OK)
-                                       free(parameter);
-                       } else {
-                               ret = NET_NFC_ALLOC_FAIL;
-                       }
-               } else {
-                       LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-               }
-
-               net_nfc_free_data(auth_key_data);
-       } else {
-               LOG_ERR("net_nfc_create_data failed, [%d]", ret);
-       }
-
-       return nfc_common_convert_error_code(__func__, ret);
-       /* LCOV_EXCL_STOP */
-}
-
-/* FIXME */
-/* LCOV_EXCL_START */
-static void _mifare_read_block_cb(net_nfc_error_e result, data_h data,
-       void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_read_block_completed_cb callback;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
+       data_h auth_key_data = NULL;
 
-       callback = (nfc_mifare_read_block_completed_cb)user_param->callback;
+       LOG_BEGIN();
 
-       if (callback != NULL) {
-               uint8_t *buffer = NULL;
-               int length = 0;
+       CHECK_SUPPORTED(NFC_TAG_FEATURE);
 
-               if (result == NET_NFC_OK && data != NULL) {
-                       buffer = net_nfc_get_data_buffer(data);
-                       length = net_nfc_get_data_length(data);
-               }
+       /* LCOV_EXCL_START */
+       CHECK_INIT();
+       CHECK_INVALID(tag == NULL);
+       CHECK_INVALID(auth_key == NULL);
+       CHECK_ACTIVATED();
 
-               callback(nfc_common_convert_error_code(__func__, result),
-                       buffer,
-                       length,
-                       user_param->user_data);
+       ret = net_nfc_create_data(&auth_key_data, auth_key, 6);
+       if (ret == NET_NFC_OK) {
+               ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_AUTHENTICATION_WITH_KEYB, auth_key_data, sector_index, 0, callback, user_data);
+
+               net_nfc_free_data(auth_key_data);
+       } else {
+               LOG_ERR("net_nfc_create_data failed, [%d]", ret);
        }
 
-       free(user_param);
+       return nfc_common_convert_error_code(__func__, ret);
+       /* LCOV_EXCL_STOP */
 }
-/* LCOV_EXCL_STOP */
 
 int nfc_mifare_read_block(nfc_tag_h tag,
        int block_index,
@@ -688,7 +780,6 @@ int nfc_mifare_read_block(nfc_tag_h tag,
        void *user_data)
 {
        int ret;
-       net_nfc_target_handle_h handle = NULL;
 
        LOG_BEGIN();
 
@@ -697,30 +788,8 @@ int nfc_mifare_read_block(nfc_tag_h tag,
        /* LCOV_EXCL_START */
        CHECK_INIT();
        CHECK_INVALID(tag == NULL);
-
-       ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-       if (ret == NET_NFC_OK) {
-               nfc_callback_s *parameter = NULL;
-
-               parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-               if (parameter != NULL) {
-                       parameter->callback = callback;
-                       parameter->user_data = user_data;
-
-                       ret = net_nfc_client_mifare_read(
-                               handle,
-                               block_index,
-                               _mifare_read_block_cb,
-                               parameter);
-                       if (ret != NET_NFC_OK)
-                               free(parameter);
-               } else {
-                       ret = NET_NFC_ALLOC_FAIL;
-               }
-       } else {
-               LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-       }
+       
+       ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_READ_BLOCK, NULL, block_index, 0, callback, user_data);
 
        return nfc_common_convert_error_code(__func__, ret);
        /* LCOV_EXCL_STOP */
@@ -756,28 +825,6 @@ int nfc_mifare_read_page(nfc_tag_h tag,
        /* LCOV_EXCL_STOP */
 }
 
-/* LCOV_EXCL_START */
-static void _mifare_write_block_cb(net_nfc_error_e result, void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_write_block_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_mifare_write_block_completed_cb)user_param->callback;
-
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_mifare_write_block(nfc_tag_h tag,
        int block_index,
        unsigned char *buffer,
@@ -801,33 +848,7 @@ int nfc_mifare_write_block(nfc_tag_h tag,
 
        ret = net_nfc_create_data(&block_data, buffer, buffer_size);
        if (ret == NET_NFC_OK) {
-               net_nfc_target_handle_h handle = NULL;
-
-               ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag,
-                       &handle);
-               if (ret == NET_NFC_OK) {
-                       nfc_callback_s *parameter = NULL;
-
-                       parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-                       if (parameter != NULL) {
-                               parameter->callback = callback;
-                               parameter->user_data = user_data;
-
-                               ret = net_nfc_client_mifare_write_block(
-                                       handle,
-                                       block_index,
-                                       block_data,
-                                       _mifare_write_block_cb,
-                                       parameter);
-                               if (ret != NET_NFC_OK)
-                                       free(parameter);
-                       } else {
-                               ret = NET_NFC_ALLOC_FAIL;
-                       }
-               } else {
-                       LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-               }
+               ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_WRITE_BLOCK, block_data, block_index, 0, callback, user_data);
 
                net_nfc_free_data(block_data);
        } else {
@@ -838,28 +859,6 @@ int nfc_mifare_write_block(nfc_tag_h tag,
        /* LCOV_EXCL_STOP */
 }
 
-/* LCOV_EXCL_START */
-static void _mifare_write_page_cb(net_nfc_error_e result, void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_write_page_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_mifare_write_page_completed_cb)user_param->callback;
-
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_mifare_write_page(nfc_tag_h tag,
        int page_index,
        unsigned char *buffer,
@@ -882,33 +881,7 @@ int nfc_mifare_write_page(nfc_tag_h tag,
 
        ret = net_nfc_create_data(&block_data, buffer, buffer_size);
        if (ret == NET_NFC_OK) {
-               net_nfc_target_handle_h handle = NULL;
-
-               ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag,
-                       &handle);
-               if (ret == NET_NFC_OK) {
-                       nfc_callback_s *parameter = NULL;
-
-                       parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-                       if (parameter != NULL) {
-                               parameter->callback = callback;
-                               parameter->user_data = user_data;
-
-                               ret = net_nfc_client_mifare_write_page(
-                                       handle,
-                                       page_index,
-                                       block_data,
-                                       _mifare_write_page_cb,
-                                       parameter);
-                               if (ret != NET_NFC_OK)
-                                       free(parameter);
-                       } else {
-                               ret = NET_NFC_ALLOC_FAIL;
-                       }
-               } else {
-                       LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-               }
+               ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_WRITE_BLOCK, block_data, page_index, 0, callback, user_data);
 
                net_nfc_free_data(block_data);
        } else {
@@ -919,28 +892,6 @@ int nfc_mifare_write_page(nfc_tag_h tag,
        /* LCOV_EXCL_STOP */
 }
 
-/* LCOV_EXCL_START */
-static void _mifare_increment_cb(net_nfc_error_e result, void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_increment_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_mifare_increment_completed_cb)user_param->callback;
-
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_mifare_increment(nfc_tag_h tag,
        int block_index,
        int value,
@@ -948,7 +899,6 @@ int nfc_mifare_increment(nfc_tag_h tag,
        void *user_data)
 {
        int ret;
-       net_nfc_target_handle_h handle = NULL;
 
        LOG_BEGIN();
 
@@ -959,57 +909,12 @@ int nfc_mifare_increment(nfc_tag_h tag,
        CHECK_INVALID(tag == NULL);
        CHECK_ACTIVATED();
 
-       ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-       if (ret == NET_NFC_OK) {
-               nfc_callback_s *parameter = NULL;
-
-               parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-               if (parameter != NULL) {
-                       parameter->callback = callback;
-                       parameter->user_data = user_data;
-
-                       ret = net_nfc_client_mifare_increment(
-                               handle,
-                               block_index,
-                               value,
-                               _mifare_increment_cb,
-                               parameter);
-                       if (ret != NET_NFC_OK)
-                               free(parameter);
-               } else {
-                       ret = NET_NFC_ALLOC_FAIL;
-               }
-       } else {
-               LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-       }
+       ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_INCREMENT, NULL, block_index, value, callback, user_data);
 
        return nfc_common_convert_error_code(__func__, ret);
        /* LCOV_EXCL_STOP */
 }
 
-/* LCOV_EXCL_START */
-static void _mifare_decrement_cb(net_nfc_error_e result, void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_decrement_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_mifare_decrement_completed_cb)user_param->callback;
-
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_mifare_decrement(nfc_tag_h tag,
        int block_index,
        int value,
@@ -1017,7 +922,6 @@ int nfc_mifare_decrement(nfc_tag_h tag,
        void *user_data)
 {
        int ret;
-       net_nfc_target_handle_h handle = NULL;
 
        LOG_BEGIN();
 
@@ -1028,64 +932,18 @@ int nfc_mifare_decrement(nfc_tag_h tag,
        CHECK_INVALID(tag == NULL);
        CHECK_ACTIVATED();
 
-       ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-       if (ret == NET_NFC_OK) {
-               nfc_callback_s *parameter = NULL;
-
-               parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-               if (parameter != NULL) {
-                       parameter->callback = callback;
-                       parameter->user_data = user_data;
-
-                       ret = net_nfc_client_mifare_decrement(
-                               handle,
-                               block_index,
-                               value,
-                               _mifare_decrement_cb,
-                               parameter);
-                       if (ret != NET_NFC_OK)
-                               free(parameter);
-               } else {
-                       ret = NET_NFC_ALLOC_FAIL;
-               }
-       } else {
-               LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-       }
+       ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_DECREMENT, NULL, block_index, value, callback, user_data);
 
        return nfc_common_convert_error_code(__func__, ret);
        /* LCOV_EXCL_STOP */
 }
 
-/* LCOV_EXCL_START */
-static void _mifare_transfer_cb(net_nfc_error_e result, void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_transfer_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_mifare_transfer_completed_cb)user_param->callback;
-
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_mifare_transfer(nfc_tag_h tag,
        int block_index,
        nfc_mifare_transfer_completed_cb callback,
        void *user_data)
 {
        int ret;
-       net_nfc_target_handle_h handle = NULL;
 
        LOG_BEGIN();
 
@@ -1096,63 +954,18 @@ int nfc_mifare_transfer(nfc_tag_h tag,
        CHECK_INVALID(tag == NULL);
        CHECK_ACTIVATED();
 
-       ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-       if (ret == NET_NFC_OK) {
-               nfc_callback_s *parameter = NULL;
-
-               parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-               if (parameter != NULL) {
-                       parameter->callback = callback;
-                       parameter->user_data = user_data;
-
-                       ret = net_nfc_client_mifare_transfer(
-                               handle,
-                               block_index,
-                               _mifare_transfer_cb,
-                               parameter);
-                       if (ret != NET_NFC_OK)
-                               free(parameter);
-               } else {
-                       ret = NET_NFC_ALLOC_FAIL;
-               }
-       } else {
-               LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-       }
+       ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_TRANSFER, NULL, block_index, 0, callback, user_data);
 
        return nfc_common_convert_error_code(__func__, ret);
        /* LCOV_EXCL_STOP */
 }
 
-/* LCOV_EXCL_START */
-static void _mifare_restore_cb(net_nfc_error_e result, void *user_data)
-{
-       nfc_callback_s *user_param = user_data;
-       nfc_mifare_restore_completed_cb callback = NULL;
-
-       LOG_BEGIN();
-
-       if (user_param == NULL) {
-               LOG_ERR("user_data is NULL");
-               return;
-       }
-
-       callback = (nfc_mifare_restore_completed_cb)user_param->callback;
-
-       if (callback != NULL)
-               callback(nfc_common_convert_error_code(__func__, result), user_param->user_data);
-
-       free(user_param);
-}
-/* LCOV_EXCL_STOP */
-
 int nfc_mifare_restore(nfc_tag_h tag,
        int block_index,
        nfc_mifare_restore_completed_cb callback,
        void *user_data)
 {
        int ret;
-       net_nfc_target_handle_h handle = NULL;
 
        LOG_BEGIN();
 
@@ -1163,29 +976,7 @@ int nfc_mifare_restore(nfc_tag_h tag,
        CHECK_INVALID(tag == NULL);
        CHECK_ACTIVATED();
 
-       ret = net_nfc_get_tag_handle((net_nfc_target_info_h)tag, &handle);
-       if (ret == NET_NFC_OK) {
-               nfc_callback_s *parameter = NULL;
-
-               parameter = (nfc_callback_s *)malloc(sizeof(nfc_callback_s));
-
-               if (parameter != NULL) {
-                       parameter->callback = callback;
-                       parameter->user_data = user_data;
-
-                       ret = net_nfc_client_mifare_restore(
-                               handle,
-                               block_index,
-                               _mifare_restore_cb,
-                               parameter);
-                       if (ret != NET_NFC_OK)
-                               free(parameter);
-               } else {
-                       ret = NET_NFC_ALLOC_FAIL;
-               }
-       } else {
-               LOG_ERR("net_nfc_get_tag_handle failed, [%d]", ret);
-       }
+       ret = nfc_tag_process(tag, NFC_TAG_OPERATION_MIFARE_RESTORE, NULL, block_index, 0, callback, user_data);
 
        return nfc_common_convert_error_code(__func__, ret);
        /* LCOV_EXCL_STOP */