From: Jihoon Jung Date: Fri, 10 Feb 2023 06:25:35 +0000 (+0900) Subject: Sync with latest tizen branch X-Git-Tag: accepted/tizen/7.0/unified/20230213.171722^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Ftizen_7.0;p=platform%2Fcore%2Fapi%2Fnfc.git Sync with latest tizen branch Change-Id: I8275c15ff8a763ccc48055a1f8248c4e54b9917d Signed-off-by: Jihoon Jung --- diff --git a/include/net_nfc_client_tag_internal.h b/include/net_nfc_client_tag_internal.h old mode 100755 new mode 100644 index 28d76d3..680fb40 --- a/include/net_nfc_client_tag_internal.h +++ b/include/net_nfc_client_tag_internal.h @@ -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 diff --git a/include/net_nfc_client_test.h b/include/net_nfc_client_test.h old mode 100755 new mode 100644 index 3ec6e4a..89f698c --- a/include/net_nfc_client_test.h +++ b/include/net_nfc_client_test.h @@ -42,6 +42,10 @@ typedef void (*net_nfc_client_test_ese_test_completed)(net_nfc_error_e result, void *user_data); +net_nfc_error_e net_nfc_client_test_test_mode_on_sync(void); + +net_nfc_error_e net_nfc_client_test_test_mode_off_sync(void); + net_nfc_error_e net_nfc_client_test_sim_test( net_nfc_client_test_sim_test_completed callback, void *user_data); diff --git a/include/nfc_internal.h b/include/nfc_internal.h old mode 100755 new mode 100644 index 6ceb15e..206efe6 --- a/include/nfc_internal.h +++ b/include/nfc_internal.h @@ -581,6 +581,10 @@ int nfc_se_foreach_registered_handlers(nfc_card_emulation_category_type_e catego int nfc_manager_configure_discovery(int mode); +int nfc_manager_test_mode_on(); + +int nfc_manager_test_mode_off(); + #ifdef __cplusplus } #endif diff --git a/packaging/capi-network-nfc.spec b/packaging/capi-network-nfc.spec index 064dee8..62273eb 100644 --- a/packaging/capi-network-nfc.spec +++ b/packaging/capi-network-nfc.spec @@ -35,15 +35,6 @@ Requires: %{name} = %{version}-%{release} %description devel This package contains the development files for %{name}. -%if 0%{?gcov:1} -%package gcov -Summary: A NFC gcov Tool -Group: Network & Connectivity/Development - -%description gcov -NFC gcov objects -%endif - %prep %setup -q @@ -73,11 +64,6 @@ rm -rf %{buildroot} %make_install -%if 0%{?gcov:1} -mkdir -p %{buildroot}%{_datadir}/gcov/obj -install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj -%endif - %check %if 0%{?gcov:1} pushd unittest @@ -100,8 +86,3 @@ popd %{_libdir}/pkgconfig/*.pc %{_libdir}/libcapi-network-nfc.so %{_bindir}/nfc_unit_test - -%if 0%{?gcov:1} -%files gcov -%{_datadir}/gcov/obj/* -%endif diff --git a/src/net_nfc_client_handover.c b/src/net_nfc_client_handover.c old mode 100755 new mode 100644 index aa80b67..370a709 --- a/src/net_nfc_client_handover.c +++ b/src/net_nfc_client_handover.c @@ -321,7 +321,7 @@ net_nfc_error_e net_nfc_client_handover_init(void) handover_proxy = net_nfc_gdbus_handover_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Handover", NULL, diff --git a/src/net_nfc_client_hce.c b/src/net_nfc_client_hce.c old mode 100755 new mode 100644 index aca6a7e..7cbc817 --- a/src/net_nfc_client_hce.c +++ b/src/net_nfc_client_hce.c @@ -257,7 +257,7 @@ net_nfc_error_e net_nfc_client_hce_init(void) hce_proxy = net_nfc_gdbus_hce_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Hce", NULL, diff --git a/src/net_nfc_client_llcp.c b/src/net_nfc_client_llcp.c old mode 100755 new mode 100644 index 4eded74..7c75f7f --- a/src/net_nfc_client_llcp.c +++ b/src/net_nfc_client_llcp.c @@ -29,6 +29,21 @@ /* 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) @@ -660,26 +692,9 @@ net_nfc_error_e net_nfc_client_llcp_config(net_nfc_llcp_config_info_h config, if (config == 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; - } - } - - /* 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); 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"); - - 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_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, @@ -2322,7 +2046,7 @@ net_nfc_error_e net_nfc_client_llcp_init(void) llcp_proxy = net_nfc_gdbus_llcp_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Llcp", NULL, @@ -2354,4 +2078,3 @@ void net_nfc_client_llcp_deinit(void) } /* LCOV_EXCL_STOP */ - diff --git a/src/net_nfc_client_manager.c b/src/net_nfc_client_manager.c old mode 100755 new mode 100644 index 67ee9fc..91a6ced --- a/src/net_nfc_client_manager.c +++ b/src/net_nfc_client_manager.c @@ -436,7 +436,7 @@ net_nfc_error_e net_nfc_client_manager_init(void) manager_proxy = net_nfc_gdbus_manager_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Manager", NULL, diff --git a/src/net_nfc_client_ndef.c b/src/net_nfc_client_ndef.c old mode 100755 new mode 100644 index 150b2e1..f803e9f --- a/src/net_nfc_client_ndef.c +++ b/src/net_nfc_client_ndef.c @@ -586,7 +586,7 @@ net_nfc_error_e net_nfc_client_ndef_init(void) ndef_proxy = net_nfc_gdbus_ndef_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Ndef", NULL, diff --git a/src/net_nfc_client_p2p.c b/src/net_nfc_client_p2p.c old mode 100755 new mode 100644 index 92a60ab..5760beb --- a/src/net_nfc_client_p2p.c +++ b/src/net_nfc_client_p2p.c @@ -324,7 +324,7 @@ net_nfc_error_e net_nfc_client_p2p_init(void) p2p_proxy = net_nfc_gdbus_p2p_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/P2p", NULL, diff --git a/src/net_nfc_client_se.c b/src/net_nfc_client_se.c old mode 100755 new mode 100644 index 94b5aad..fb460c9 --- a/src/net_nfc_client_se.c +++ b/src/net_nfc_client_se.c @@ -34,6 +34,39 @@ /* 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, @@ -1844,7 +1539,7 @@ net_nfc_error_e net_nfc_client_se_init(void) se_proxy = net_nfc_gdbus_secure_element_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/SecureElement", NULL, diff --git a/src/net_nfc_client_snep.c b/src/net_nfc_client_snep.c old mode 100755 new mode 100644 index d637c84..3a9a47a --- a/src/net_nfc_client_snep.c +++ b/src/net_nfc_client_snep.c @@ -468,7 +468,7 @@ net_nfc_error_e net_nfc_client_snep_init(void) snep_proxy = net_nfc_gdbus_snep_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Snep", NULL, diff --git a/src/net_nfc_client_system_handler.c b/src/net_nfc_client_system_handler.c old mode 100755 new mode 100644 index a90dd45..b0db9cc --- a/src/net_nfc_client_system_handler.c +++ b/src/net_nfc_client_system_handler.c @@ -280,7 +280,7 @@ net_nfc_error_e net_nfc_client_sys_handler_init(void) popup_proxy = net_nfc_gdbus_popup_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Popup", NULL, diff --git a/src/net_nfc_client_tag.c b/src/net_nfc_client_tag.c old mode 100755 new mode 100644 index 3991271..b6d735c --- a/src/net_nfc_client_tag.c +++ b/src/net_nfc_client_tag.c @@ -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) @@ -797,7 +831,7 @@ net_nfc_error_e net_nfc_client_tag_init(void) tag_proxy = net_nfc_gdbus_tag_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Tag", NULL, diff --git a/src/net_nfc_client_tag_felica.c b/src/net_nfc_client_tag_felica.c old mode 100755 new mode 100644 index 70053c3..45e126b --- a/src/net_nfc_client_tag_felica.c +++ b/src/net_nfc_client_tag_felica.c @@ -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; diff --git a/src/net_nfc_client_tag_jewel.c b/src/net_nfc_client_tag_jewel.c old mode 100755 new mode 100644 index abb212a..c3b27f5 --- a/src/net_nfc_client_tag_jewel.c +++ b/src/net_nfc_client_tag_jewel.c @@ -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; diff --git a/src/net_nfc_client_test.c b/src/net_nfc_client_test.c old mode 100755 new mode 100644 index 83e5b73..72a64a6 --- a/src/net_nfc_client_test.c +++ b/src/net_nfc_client_test.c @@ -511,6 +511,75 @@ net_nfc_error_e net_nfc_client_test_set_ee_data_sync(int mode, return out_result; } +NET_NFC_EXPORT_API +net_nfc_error_e net_nfc_client_test_test_mode_on_sync(void) +{ + net_nfc_error_e out_result = NET_NFC_OK; + GError *error = NULL; + + DEBUG_CLIENT_MSG("NFC Test Mode ON SYNC!!!!"); + + if (test_proxy == NULL) { + if (net_nfc_client_test_init() != NET_NFC_OK) { + DEBUG_ERR_MSG("test_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; + + if (net_nfc_gdbus_test_call_test_mode_on_sync(test_proxy, + (gint *)&out_result, + NULL, + &error) == FALSE) { + if (error != NULL) { + DEBUG_ERR_MSG("can not call Test Mode On: %s", error->message); + g_error_free(error); + } + + out_result = NET_NFC_IPC_FAIL; + } + + return out_result; +} + +NET_NFC_EXPORT_API +net_nfc_error_e net_nfc_client_test_test_mode_off_sync(void) +{ + net_nfc_error_e out_result = NET_NFC_OK; + GError *error = NULL; + + DEBUG_CLIENT_MSG("NFC Test Mode Off SYNC!!!!"); + + if (test_proxy == NULL) { + if (net_nfc_client_test_init() != NET_NFC_OK) { + DEBUG_ERR_MSG("test_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; + + if (net_nfc_gdbus_test_call_test_mode_off_sync(test_proxy, + (gint *)&out_result, + NULL, + &error) == FALSE) { + if (error != NULL) { + DEBUG_ERR_MSG("can not call Test Mode Off: %s", error->message); + g_error_free(error); + } + + out_result = NET_NFC_IPC_FAIL; + } + + return out_result; +} + + NET_NFC_EXPORT_API net_nfc_error_e net_nfc_client_test_ese_test( net_nfc_client_test_ese_test_completed callback, @@ -663,7 +732,7 @@ net_nfc_error_e net_nfc_client_test_init(void) test_proxy = net_nfc_gdbus_test_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Test", NULL, diff --git a/src/net_nfc_client_transceive.c b/src/net_nfc_client_transceive.c old mode 100755 new mode 100644 index db80caf..d26c1a7 --- a/src/net_nfc_client_transceive.c +++ b/src/net_nfc_client_transceive.c @@ -422,7 +422,7 @@ net_nfc_error_e net_nfc_client_transceive_init(void) transceive_proxy = net_nfc_gdbus_transceive_proxy_new_for_bus_sync( G_BUS_TYPE_SYSTEM, - G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, + G_DBUS_PROXY_FLAGS_NONE, "org.tizen.NetNfcService", "/org/tizen/NetNfcService/Transceive", NULL, diff --git a/src/nfc_manager.c b/src/nfc_manager.c index 8a94049..cdc480e 100644 --- a/src/nfc_manager.c +++ b/src/nfc_manager.c @@ -114,6 +114,42 @@ int nfc_manager_configure_discovery(int mode) /* LCOV_EXCL_STOP */ } +int nfc_manager_test_mode_on(void) +{ + int ret; + + LOG_BEGIN(); + + CHECK_SUPPORTED(NFC_FEATURE); + + /* LCOV_EXCL_START */ + CHECK_INIT(); + CHECK_ACTIVATED(); + + ret = net_nfc_client_test_test_mode_on_sync(); + + return nfc_common_convert_error_code(__func__, ret); + /* LCOV_EXCL_STOP */ +} + +int nfc_manager_test_mode_off(void) +{ + int ret; + + LOG_BEGIN(); + + CHECK_SUPPORTED(NFC_FEATURE); + + /* LCOV_EXCL_START */ + CHECK_INIT(); + CHECK_ACTIVATED(); + + ret = net_nfc_client_test_test_mode_off_sync(); + + return nfc_common_convert_error_code(__func__, ret); + /* LCOV_EXCL_STOP */ +} + bool nfc_manager_is_activated(void) { int ret; diff --git a/src/nfc_tag.c b/src/nfc_tag.c old mode 100755 new mode 100644 index a476b82..cf37a15 --- a/src/nfc_tag.c +++ b/src/nfc_tag.c @@ -16,30 +16,45 @@ #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_s* user_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_s* parameter = 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) + void* user_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 char* buffer, int buffer_size, nfc_tag_transceive_completed_cb callback, - void *user_data) + void* user_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,122 +742,37 @@ 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, nfc_mifare_authenticate_with_keyB_completed_cb callback, 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; - } + int ret; + 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(); @@ -698,29 +789,7 @@ int nfc_mifare_read_block(nfc_tag_h tag, 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 */ diff --git a/test/nfc_unit_test.c b/test/nfc_unit_test.c old mode 100755 new mode 100644 index fbfef69..23d2012 --- a/test/nfc_unit_test.c +++ b/test/nfc_unit_test.c @@ -8,12 +8,13 @@ #include #define BUFFER_LEN 10 -#define PRT(format, args...) printf("%s:%d() "format, __FUNCTION__, __LINE__, ##args) -#define TC_PRT(format, args...) PRT(format"\n", ##args) +#define PRT(format, args...) printf("%s:%d() " format, __FUNCTION__, __LINE__, ##args) +#define TC_PRT(format, args...) PRT(format "\n", ##args) GMainLoop *main_loop = NULL; -typedef struct { +typedef struct +{ const char *tc_name; int tc_code; } tc_table_t; @@ -21,24 +22,29 @@ typedef struct { tc_table_t tc_table[] = { /* manage api*/ {"NFC Initialize Test", 1}, - {"NFC Configure discovery (CE only) Test", 2}, - {"NFC Configure discovery (Tag only) Test", 3}, - {"NFC Tag NDEF Read", 4}, - {"NFC Tag NDEF Write", 5}, - {"NFC Deinitialize Test", 6}, - {"NFC Configure discovery (ALL enable) Test", 7}, - {"NFC Configure discovery (ALL disable) Test", 8}, + {"NFC Enable Test", 2}, + {"NFC Disable Test", 3}, + {"NFC Configure discovery (CE only) Test", 4}, + {"NFC Configure discovery (Tag only) Test", 5}, + {"NFC Tag NDEF Read", 6}, + {"NFC Tag NDEF Write", 7}, + {"NFC Test Mode ON", 8}, + {"NFC Test Mode OFF", 9}, + {"NFC Deinitialize Test", 10}, + {"NFC Configure discovery (ALL enable) Test", 11}, + {"NFC Configure discovery (ALL disable) Test", 12}, /* -----------*/ - {"Finish" , 0x00ff}, - {NULL , 0x0000}, + {"Finish", 0x00ff}, + {NULL, 0x0000}, }; void tc_usage_print(void) { int i = 0; - while (tc_table[i].tc_name) { + while (tc_table[i].tc_name) + { if (tc_table[i].tc_code != 0x00ff) TC_PRT("Key %d : usage %s", tc_table[i].tc_code, tc_table[i].tc_name); else @@ -50,21 +56,25 @@ void tc_usage_print(void) void __tag_read_completed(nfc_error_e result, nfc_ndef_message_h message, void *user_data) { - if (result == NFC_ERROR_NONE) { + if (result == NFC_ERROR_NONE) + { int count = 0; nfc_ndef_message_get_record_count(message, &count); TC_PRT("tag read successful"); TC_PRT("record count : %d", count); - if (count > 0) { + if (count > 0) + { nfc_ndef_record_h record = NULL; int ret = nfc_ndef_message_get_record(message, 0, &record); - if (ret != NFC_ERROR_NONE) { + if (ret != NFC_ERROR_NONE) + { TC_PRT("fail to get record from ndef message: %d", ret); return; } - if (record != NULL) { + if (record != NULL) + { char *lang_code = NULL; int id_size = 0; int type_size = 0; @@ -80,8 +90,9 @@ void __tag_read_completed(nfc_error_e result, nfc_ndef_message_h message, void * nfc_ndef_record_get_type(record, &type, &type_size); TC_PRT("3. type : %s, type_size : %d", type, type_size); - if (strcmp((const char *)type, "T") == 0) { - char* text = NULL; + if (strcmp((const char *)type, "T") == 0) + { + char *text = NULL; nfc_ndef_record_get_text(record, &text); TC_PRT("3. This record is Text record."); @@ -91,7 +102,9 @@ void __tag_read_completed(nfc_error_e result, nfc_ndef_message_h message, void * TC_PRT("----* record 0 information end *----"); } } - } else { + } + else + { TC_PRT("tag read error : %d", result); } } @@ -106,7 +119,8 @@ void __tag_write_completed(nfc_error_e result, void *user_data) void __tag_discovered(nfc_discovered_type_e type, nfc_tag_h tag, void *user_data) { - if (type == NFC_DISCOVERED_TYPE_ATTACHED) { + if (type == NFC_DISCOVERED_TYPE_ATTACHED) + { nfc_tag_type_e tag_type = NFC_UNKNOWN_TARGET; bool is_support_ndef = false; @@ -117,13 +131,14 @@ void __tag_discovered(nfc_discovered_type_e type, nfc_tag_h tag, void *user_data nfc_tag_is_support_ndef(tag, &is_support_ndef); TC_PRT("NDEF is supported? : %d", is_support_ndef); - - } else if (type == NFC_DISCOVERED_TYPE_DETACHED) { + } + else if (type == NFC_DISCOVERED_TYPE_DETACHED) + { TC_PRT("tag detached!!!"); } } -char* nfc_util_itoa(char* fmt, ...) +char *nfc_util_itoa(char *fmt, ...) { char str[128]; va_list arguments; @@ -139,7 +154,7 @@ nfc_ndef_message_h __create_ndef_message() nfc_ndef_message_h msg = NULL; nfc_ndef_record_h ndef_name_record = NULL; unsigned int seed = time(NULL); - char* time_str = nfc_util_itoa("The random text : %d", rand_r(&seed)); + char *time_str = nfc_util_itoa("The random text : %d", rand_r(&seed)); nfc_ndef_message_create(&msg); nfc_ndef_record_create_text(&ndef_name_record, time_str, "en-US", NFC_ENCODE_UTF_8); @@ -149,104 +164,142 @@ nfc_ndef_message_h __create_ndef_message() return msg; } +void _nfc_activation_completed_cb(nfc_error_e error, void *user_data) +{ + if (error == NFC_ERROR_NONE) + TC_PRT("Set Activation Successful"); + else + TC_PRT("Set Activation Failed. Result : %d", error); +} + int test_input_callback(void *data) { int ret = 0; long test_id = (long)data; - switch (test_id) { + switch (test_id) + { case 0x00ff: TC_PRT("Finished"); g_main_loop_quit(main_loop); break; case 1: - { - TC_PRT("nfc initialize start"); - ret = nfc_manager_initialize(); - if (ret == NFC_ERROR_NONE) - TC_PRT("NFC Initialize successful"); - else - TC_PRT("NFC Error occur : %d", ret); + { + TC_PRT("nfc initialize start"); + ret = nfc_manager_initialize(); + if (ret == NFC_ERROR_NONE) + TC_PRT("NFC Initialize successful"); + else + TC_PRT("NFC Error occur : %d", ret); - nfc_manager_set_tag_discovered_cb(__tag_discovered, NULL); - TC_PRT("nfc initialize end"); - } - break; + nfc_manager_set_tag_discovered_cb(__tag_discovered, NULL); + TC_PRT("nfc initialize end"); + } + break; case 2: - { - TC_PRT("nfc configure discovery : CE only start"); - ret = nfc_manager_configure_discovery(NFC_DISCOVERY_MODE_CONFIG_LISTENING); - TC_PRT("nfc configure discovery : CE only end : %d", ret); - } - break; + { + TC_PRT("nfc enable start"); + ret = nfc_manager_set_activation(true, _nfc_activation_completed_cb, NULL); + TC_PRT("nfc_manager_set_activation end : %d", ret); + } + break; case 3: - { - TC_PRT("nfc configure discovery : Tag only start"); - ret = nfc_manager_configure_discovery(NFC_DISCOVERY_MODE_CONFIG_POLLING); - TC_PRT("nfc configure discovery : Tag only end : %d", ret); - } - break; + { + TC_PRT("nfc disable start"); + ret = nfc_manager_set_activation(false, _nfc_activation_completed_cb, NULL); + TC_PRT("nfc_manager_set_activation end : %d", ret); + } + break; case 4: - { - TC_PRT("Tag read start"); - nfc_tag_h current_tag = NULL; - nfc_manager_get_connected_tag(¤t_tag); - - if (current_tag != NULL) - ret = nfc_tag_read_ndef(current_tag, __tag_read_completed, NULL); - else - TC_PRT("Tag Not Connected"); - - TC_PRT("Tag read end"); - } - break; + { + TC_PRT("nfc configure discovery : CE only start"); + ret = nfc_manager_configure_discovery(NFC_DISCOVERY_MODE_CONFIG_LISTENING); + TC_PRT("nfc configure discovery : CE only end : %d", ret); + } + break; case 5: - { - TC_PRT("Tag write start"); - - nfc_tag_h current_tag = NULL; - nfc_manager_get_connected_tag(¤t_tag); - nfc_ndef_message_h msg = __create_ndef_message(); - - if (msg != NULL) { - if (current_tag != NULL) - ret = nfc_tag_write_ndef(current_tag, msg, __tag_write_completed, NULL); - else - TC_PRT("Tag Not Connected."); - } else { - TC_PRT("NDEF Message create is failed."); - } - - TC_PRT("Tag write end"); - } - break; + { + TC_PRT("nfc configure discovery : Tag only start"); + ret = nfc_manager_configure_discovery(NFC_DISCOVERY_MODE_CONFIG_POLLING); + TC_PRT("nfc configure discovery : Tag only end : %d", ret); + } + break; case 6: - { - TC_PRT("nfc deinitialize start"); + { + TC_PRT("Tag read start"); + nfc_tag_h current_tag = NULL; + nfc_manager_get_connected_tag(¤t_tag); - ret = nfc_manager_deinitialize(); - if (ret == NFC_ERROR_NONE) - TC_PRT("NFC Deinitialize successful"); - else - TC_PRT("NFC Error occur : %d", ret); + if (current_tag != NULL) + ret = nfc_tag_read_ndef(current_tag, __tag_read_completed, NULL); + else + TC_PRT("Tag Not Connected"); - TC_PRT("nfc deinitialize end"); - } - break; + TC_PRT("Tag read end"); + } + break; case 7: + { + TC_PRT("Tag write start"); + + nfc_tag_h current_tag = NULL; + nfc_manager_get_connected_tag(¤t_tag); + nfc_ndef_message_h msg = __create_ndef_message(); + + if (msg != NULL) { - TC_PRT("nfc configure discovery : All enable start"); - ret = nfc_manager_configure_discovery(NFC_DISCOVERY_MODE_RESUME); - TC_PRT("nfc configure discovery : All enable end : %d", ret); + if (current_tag != NULL) + ret = nfc_tag_write_ndef(current_tag, msg, __tag_write_completed, NULL); + else + TC_PRT("Tag Not Connected."); } - break; - case 8: + else { - TC_PRT("nfc configure discovery : All disable start"); - ret = nfc_manager_configure_discovery(NFC_DISCOVERY_MODE_STOP); - TC_PRT("nfc configure discovery : All enable end : %d", ret); + TC_PRT("NDEF Message create is failed."); } - break; + + TC_PRT("Tag write end"); + } + break; + case 8: + { + TC_PRT("Test Mode ON"); + nfc_manager_test_mode_on(); + } + break; + case 9: + { + TC_PRT("Test Mode OFF"); + nfc_manager_test_mode_off(); + } + break; + case 10: + { + TC_PRT("nfc deinitialize start"); + + ret = nfc_manager_deinitialize(); + if (ret == NFC_ERROR_NONE) + TC_PRT("NFC Deinitialize successful"); + else + TC_PRT("NFC Error occur : %d", ret); + + TC_PRT("nfc deinitialize end"); + } + break; + case 11: + { + TC_PRT("nfc configure discovery : All enable start"); + ret = nfc_manager_configure_discovery(NFC_DISCOVERY_MODE_RESUME); + TC_PRT("nfc configure discovery : All enable end : %d", ret); + } + break; + case 12: + { + TC_PRT("nfc configure discovery : All disable start"); + ret = nfc_manager_configure_discovery(NFC_DISCOVERY_MODE_STOP); + TC_PRT("nfc configure discovery : All enable end : %d", ret); + } + break; default: tc_usage_print(); break; @@ -256,10 +309,10 @@ int test_input_callback(void *data) } static gboolean key_event_cb(GIOChannel *chan, - GIOCondition cond, - gpointer data) + GIOCondition cond, + gpointer data) { - char buf[BUFFER_LEN] = { 0 }; + char buf[BUFFER_LEN] = {0}; gsize len = 0; long test_id; @@ -277,8 +330,7 @@ static gboolean key_event_cb(GIOChannel *chan, return TRUE; } - -int main(int argc, char ** argv) +int main(int argc, char **argv) { GIOChannel *key_io; @@ -290,7 +342,7 @@ int main(int argc, char ** argv) g_io_channel_set_flags(key_io, G_IO_FLAG_NONBLOCK, NULL); g_io_add_watch(key_io, G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL, - key_event_cb, NULL); + key_event_cb, NULL); g_io_channel_unref(key_io);