From 657fb083f887f44fdb61f46ffe0f93178b6c4472 Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Mon, 14 Mar 2016 15:25:54 +0900 Subject: [PATCH 01/16] Sync with Tizen 2.4 Signed-off-by: Jihoon Jung Change-Id: I6b9ade98f336b6b1d7ca72139490315f20b09d8c --- packaging/nfc-plugin-emul.spec | 2 +- src/oem/oem_emul.c | 190 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 182 insertions(+), 10 deletions(-) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index efd6f3d..0e2dfd7 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.14 +Version: 0.0.15 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index 195fdd7..f332d5c 100644 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -223,7 +223,6 @@ socket_info_s socket_info_array[LLCP_NB_SOCKET_MAX] = {{0,}}; snep_msg_s* Snep_Server_msg; data_s * llcp_server_data = NULL; -data_s rawdata = { NULL, 0 }; pthread_cond_t cond = PTHREAD_COND_INITIALIZER; @@ -938,6 +937,167 @@ ERROR : return create_record_count; } +static bool _net_nfc_change_file_owner_permission(FILE *file) +{ + char *buffer = NULL; + size_t buffer_len = 0; + struct passwd pwd = { 0, }; + struct passwd *pw_inhouse = NULL; + struct group grp = { 0, }; + struct group *gr_inhouse = NULL; + + if (file == NULL) + return false; + + /* change permission */ + fchmod(fileno(file), 0777); + + /* change owner */ + /* get passwd id */ + buffer_len = sysconf(_SC_GETPW_R_SIZE_MAX); + if (buffer_len == -1) + { + buffer_len = 16384; + } + + _net_nfc_util_alloc_mem(buffer, buffer_len); + if (buffer == NULL) + return false; + + getpwnam_r("inhouse", &pwd, buffer, buffer_len, &pw_inhouse); + _net_nfc_util_free_mem(buffer); + + /* get group id */ + buffer_len = sysconf(_SC_GETGR_R_SIZE_MAX); + if (buffer_len == -1) + { + buffer_len = 16384; + } + + _net_nfc_util_alloc_mem(buffer, buffer_len); + if (buffer == NULL) + return false; + + getgrnam_r("inhouse", &grp, buffer, buffer_len, &gr_inhouse); + _net_nfc_util_free_mem(buffer); + + if ((pw_inhouse != NULL) && (gr_inhouse != NULL)) + { + if (fchown(fileno(file), pw_inhouse->pw_uid, gr_inhouse->gr_gid) < 0) + { + DEBUG_MSG("failed to change owner"); + } + } + + return true; +} + +static void _net_nfc_store_ndef_message(data_s *data) +{ + char file_name[1024] = { 0, }; + FILE *fp = NULL; + + if (data == NULL) + { + return; + } + + /* create file */ + snprintf(file_name, sizeof(file_name), "%s/%s/%s", "/opt/usr/share/nfc-manager-daemon", + "message", "emul-ndef-message.txt"); + + unlink(file_name); + + if ((fp = fopen(file_name, "w")) != NULL) + { + int length = 0; + + if ((length = fwrite(data->buffer, 1, data->length, fp)) > 0) + { + DEBUG_MSG("[%d] bytes is written", length); + + _net_nfc_change_file_owner_permission(fp); + fflush(fp); + fsync(fileno(fp)); + } + else + { + DEBUG_MSG("write is failed = [%d]", data->length); + } + + fclose(fp); + } +} + +static net_nfc_error_e _net_nfc_retrieve_ndef_message(data_s *data) +{ + char file_name[1024] = { 0, }; + FILE *fp = NULL; + net_nfc_error_e result = NET_NFC_OK; + + if (data == NULL) + { + return NET_NFC_NULL_PARAMETER; + } + + /* retreive file */ + snprintf(file_name, sizeof(file_name), "%s/%s/%s", "/opt/usr/share/nfc-manager-daemon", + "message", "emul-ndef-message.txt"); + + if ((fp = fopen(file_name, "r")) != NULL) + { + long int size = 0; + + /* rewind to start of file */ + fseek(fp, 0, SEEK_END); + size = ftell(fp); + fseek(fp, 0, SEEK_SET); + + DEBUG_MSG("message length = [%ld]", size); + + if (size > 0) + { + if (net_nfc_util_init_data(data, size) == true) + { + int current; + size_t offset = 0; + + /* read fully */ + do { + current = fread(data->buffer + offset, 1, + data->length - offset, fp); + if (current > 0) + offset += current; + else + break; + } while (offset < data->length); + + if (offset == data->length) { + result = NET_NFC_OK; + } else { + result = NET_NFC_NO_NDEF_MESSAGE; + } + } + else + { + result = NET_NFC_ALLOC_FAIL; + } + } + else + { + result = NET_NFC_OPERATION_FAIL; + } + + fclose(fp); + } + else + { + result = NET_NFC_NO_DATA_FOUND; + } + + return result; +} + static bool _net_nfc_create_ndef_from_emulMsg(emulMsg_s *emul_msg) { DEBUG_EMUL_BEGIN(); @@ -948,6 +1108,7 @@ static bool _net_nfc_create_ndef_from_emulMsg(emulMsg_s *emul_msg) int retval = true; net_nfc_error_e result = NET_NFC_OK; + data_s rawdata = { NULL, 0 }; int record_count = emul_msg->record_count; @@ -982,6 +1143,8 @@ static bool _net_nfc_create_ndef_from_emulMsg(emulMsg_s *emul_msg) } + _net_nfc_store_ndef_message(&rawdata); + DEBUG_EMUL_END(); return retval; @@ -1099,13 +1262,6 @@ static void _net_nfc_destroy_emulMsg(emulMsg_s *emul_msg) { DEBUG_EMUL_BEGIN(); - if(rawdata.buffer != NULL) - { - _nfc_emul_util_free_mem(rawdata.buffer); - rawdata.buffer = NULL; - } - rawdata.length = 0; - if(emul_msg != NULL && emul_msg->file_data != NULL) { free(emul_msg->file_data); @@ -1304,10 +1460,13 @@ static void _net_nfc_llcp_create_snep_server_msg(snep_command_field_e resp_field uint8_t response = (uint8_t)resp_field; uint8_t version = 0; uint32_t length_field = 0; + data_s rawdata = { NULL, 0 }; version = SNEP_MAJOR_VER; version = (((version << 4) & 0xf0) | (SNEP_MINOR_VER & 0x0f)); + _net_nfc_retrieve_ndef_message(&rawdata); + /* version response length payload*/ Snep_Server_msg->data->length = sizeof(uint8_t) + sizeof(uint8_t) + sizeof(uint32_t) + rawdata.length; @@ -1347,6 +1506,9 @@ static llcp_state_e _net_nfc_get_llcp_state(void* pContext) static bool _net_nfc_make_llcp_data(emulMsg_s *emul_msg) { DEBUG_EMUL_BEGIN(); + data_s rawdata = { NULL, 0 }; + + _net_nfc_retrieve_ndef_message(&rawdata); if (emul_msg->record_count == 0 || rawdata.length == 0) { @@ -2088,6 +2250,8 @@ static bool net_nfc_emul_controller_disconnect(net_nfc_target_handle_s* handle, static bool net_nfc_emul_controller_check_ndef(net_nfc_target_handle_s* handle, uint8_t *ndef_card_state, int* max_data_size, int* real_data_size, net_nfc_error_e* result) { + data_s rawdata = { NULL, 0 }; + if (result == NULL) { return false; } @@ -2107,6 +2271,8 @@ static bool net_nfc_emul_controller_check_ndef(net_nfc_target_handle_s* handle, DEBUG_EMUL_BEGIN(); + _net_nfc_retrieve_ndef_message(&rawdata); + if (_net_nfc_emul_get_is_tag_attached()) { *ndef_card_state = NET_NFC_NDEF_CARD_READ_WRITE; @@ -2147,6 +2313,7 @@ static bool net_nfc_emul_controller_make_read_only_ndef(net_nfc_target_handle_s* static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, data_s** data, net_nfc_error_e* result) { int real_data_size = 0; + data_s rawdata = { NULL, 0 }; DEBUG_EMUL_BEGIN(); @@ -2175,6 +2342,10 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d return false; } + *result = _net_nfc_retrieve_ndef_message(&rawdata); + if(*result != NET_NFC_OK) + return false; + real_data_size = rawdata.length; if(real_data_size == 0) @@ -2225,9 +2396,10 @@ static bool net_nfc_emul_controller_write_ndef(net_nfc_target_handle_s* handle, DEBUG_EMUL_BEGIN(); - usleep(300 * 1000); DEBUG_MSG("net_nfc_emul_controller_write_ndef success >>>"); + _net_nfc_store_ndef_message(data); + DEBUG_EMUL_END(); return true; -- 2.7.4 From 24151777807ddf1ff5de12487d7e8e30079a1c93 Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Thu, 14 Apr 2016 13:04:23 +0900 Subject: [PATCH 02/16] Fix 3.0 prevent issue Signed-off-by: Jihoon Jung Change-Id: Ib209c3d4ec19ac35b30311c7827effef885420a6 --- src/oem/oem_emul.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index f332d5c..a810d8c 100644 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -3248,7 +3248,7 @@ static bool net_nfc_emul_controller_secure_element_get_atr(net_nfc_target_handle *result = NET_NFC_OK; *atr = NULL; - strcpy(buffer, "getatr"); + strncpy(buffer, "getatr", sizeof(buffer)); temp = (data_s *)calloc(1, sizeof(*temp)); if (temp != NULL) { @@ -3284,7 +3284,7 @@ static bool net_nfc_emul_controller_secure_element_send_apdu(net_nfc_target_hand *response = NULL; //buffer response - strcpy(buffer, "response"); + strncpy(buffer, "response", sizeof(buffer)); length = strlen(buffer); -- 2.7.4 From 0d3dbad205d0aee856fa3ef4870b9f62e85fb01f Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Tue, 19 Apr 2016 14:59:15 +0900 Subject: [PATCH 03/16] Change the epoll timeout value for remove repeated dlog Signed-off-by: Jihoon Jung Change-Id: I3c813d8ec1a016da54ca5f0009ce09f03812037f --- packaging/nfc-plugin-emul.spec | 2 +- src/oem/oem_emul.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 0e2dfd7..7051449 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.15 +Version: 0.0.16 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index a810d8c..d5a2b8e 100644 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -1693,7 +1693,7 @@ static void emul_ReaderThread(void * pArg) condition = 0; } - while((num_of_files = epoll_wait(emulMsg_poll_fd, emulMsg_poll_events, EPOLL_SIZE, 300)) == 0){ + while((num_of_files = epoll_wait(emulMsg_poll_fd, emulMsg_poll_events, EPOLL_SIZE, -1)) == 0){ if(emulMsg_poll_fd == -1){ DEBUG_MSG("client ipc thread is terminated"); condition = 0; -- 2.7.4 From c88e00dcda8fc46bc7f5ab1f507d80d50b4852a1 Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Fri, 1 Jul 2016 16:04:28 +0900 Subject: [PATCH 04/16] Add rule for NFC system daemon Signed-off-by: Jihoon Jung Change-Id: I882c0f4c36ea7f8ad404b80f57bfb04b2c0fe6be --- 98-nfc-plugin-emul.rules | 2 ++ packaging/nfc-plugin-emul.spec | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100755 98-nfc-plugin-emul.rules diff --git a/98-nfc-plugin-emul.rules b/98-nfc-plugin-emul.rules new file mode 100755 index 0000000..2838149 --- /dev/null +++ b/98-nfc-plugin-emul.rules @@ -0,0 +1,2 @@ +# NFC Emulator Node +KERNEL=="nfc0", GROUP="network_fw", MODE="0660" diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 7051449..55f2a2c 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.16 +Version: 0.0.17 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 @@ -34,6 +34,8 @@ rm -rf %{buildroot} install -D -m 0644 LICENSE.Apache-2.0 %{buildroot}/%{_datadir}/license/nfc-plugin-emul +mkdir -p %{buildroot}%{_libdir}/udev/rules.d +cp 98-nfc-plugin-emul.rules %{buildroot}%{_libdir}/udev/rules.d/98-nfc-plugin-emul.rules %postun -p /sbin/ldconfig @@ -43,4 +45,4 @@ install -D -m 0644 LICENSE.Apache-2.0 %{buildroot}/%{_datadir}/license/nfc-plug %defattr(-,root,root,-) %{_libdir}/nfc/libnfc-plugin.so %{_datadir}/license/nfc-plugin-emul - +%{_libdir}/udev/rules.d/98-nfc-plugin-emul.rules -- 2.7.4 From 0ff9f180857f9e1fb6e269ef3bcda8cd93769df3 Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Mon, 11 Jul 2016 11:51:08 +0900 Subject: [PATCH 05/16] Fix build warning and remove unused code Signed-off-by: Jihoon Jung Change-Id: Ia96d969297acc3f72f26fa1fddf7f9869d9d84b3 --- packaging/nfc-plugin-emul.spec | 2 +- src/oem/oem_emul.c | 102 +---------------------------------------- 2 files changed, 3 insertions(+), 101 deletions(-) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 55f2a2c..10c49cb 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.17 +Version: 0.0.18 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index d5a2b8e..63e277c 100644 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -1729,7 +1729,7 @@ static void emul_ReaderThread(void * pArg) DEBUG_MSG("message = [%s] ", readbuffer); /* remove header */ - _net_nfc_process_emulMsg(readbuffer + NET_NFC_EMUL_HEADER_LENGTH, readcnt - NET_NFC_EMUL_HEADER_LENGTH); + _net_nfc_process_emulMsg((uint8_t *)readbuffer + NET_NFC_EMUL_HEADER_LENGTH, (long int)readcnt - NET_NFC_EMUL_HEADER_LENGTH); } else { @@ -1866,71 +1866,6 @@ static void _net_nfc_emul_controller_stop_thread (void) DEBUG_EMUL_END(); } -static bool _net_nfc_emul_controller_create_interfaceFile (void) -{ - char file_name[1024] = { 0, }; - FILE *fp = NULL; - struct stat st; - bool retval = false; - - DEBUG_EMUL_BEGIN(); - - /* create folder */ - if (stat(NET_NFC_EMUL_DATA_PATH, &st) != 0){ - if(mkdir(NET_NFC_EMUL_DATA_PATH, 0777) != 0){ - DEBUG_MSG("create folder is failed"); - return false; - } - } - else{ - DEBUG_MSG("folder is already created"); - } - - /* create file */ - snprintf(file_name, sizeof(file_name), "%s/%s", NET_NFC_EMUL_DATA_PATH, NET_NFC_EMUL_MESSAGE_FILE_NAME ); - SECURE_LOGD("file path : %s", file_name); - - if (stat(file_name, &st) == 0) { - DEBUG_MSG("file is already created"); - return true; - } - - if ((fp = fopen(file_name, "w")) != NULL) - { - struct passwd *pw_root = NULL; - struct group *gr_root = NULL; - - fchmod(fileno(fp), 0755); - - pw_root = getpwnam("root"); - gr_root = getgrnam("root"); - - if ((pw_root != NULL) && (gr_root != NULL)) - { - if (fchown(fileno(fp), pw_root->pw_uid, gr_root->gr_gid) < 0) - { - DEBUG_ERR_MSG("failed to change owner"); - } - else { - retval = true; - } - } - else { - DEBUG_ERR_MSG("failed to get privilege"); - } - - fclose(fp); - - } - else { - DEBUG_ERR_MSG("failed to create file"); - } - - DEBUG_EMUL_END(); - - return retval; -} - static bool net_nfc_emul_controller_init (net_nfc_error_e* result) { bool ret = true; @@ -2431,40 +2366,7 @@ static bool net_nfc_emul_controller_transceive(net_nfc_target_handle_s *handle, DEBUG_EMUL_BEGIN(); - if (info->dev_type == NET_NFC_MIFARE_DESFIRE_PICC) { - DEBUG_MSG("NET_NFC_MIFARE_DESFIRE_PICC"); - - /* check ISO-DEP formatable in DesFire */ - if (info->trans_data.buffer[0] == (uint8_t)0x90 && - info->trans_data.buffer[1] == (uint8_t)0x60) { - - data_s *temp; - - _net_nfc_util_alloc_mem(temp, sizeof(data_s)); - if (temp != NULL) { - temp->length = 9; - - _net_nfc_util_alloc_mem(temp->buffer, temp->length); - if (temp->buffer != NULL) { - temp->buffer[7] = (uint8_t)0x91; - temp->buffer[8] = (uint8_t)0xAF; - - *data = temp; - ret = true; - } else { - *result = NET_NFC_ALLOC_FAIL; - _net_nfc_util_free_mem(temp); - } - } else { - *result = NET_NFC_ALLOC_FAIL; - } - } else { - *result = NET_NFC_NOT_SUPPORTED; - } - - } else { - *result = NET_NFC_NOT_SUPPORTED; - } + /* This implementation is not needed on Emulator environment */ DEBUG_EMUL_END(); -- 2.7.4 From 757fcb84129acb368d4a5af484c5f61f02674d1b Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Tue, 9 Aug 2016 13:20:57 +0900 Subject: [PATCH 06/16] nfc plugin emul Version up - change log implementation - change implentation about make ndef message Signed-off-by: Jihoon Jung Change-Id: I2775cd531555807e8bd0c285b150888238cbf597 --- packaging/nfc-plugin-emul.spec | 2 +- src/nfc_debug_private.h | 24 ++++++++-------- src/oem/oem_emul.c | 64 +++++++++++++++++++----------------------- 3 files changed, 42 insertions(+), 48 deletions(-) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 10c49cb..9a11b55 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.18 +Version: 0.0.19 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 diff --git a/src/nfc_debug_private.h b/src/nfc_debug_private.h index 6c3ff12..022504b 100755 --- a/src/nfc_debug_private.h +++ b/src/nfc_debug_private.h @@ -42,45 +42,45 @@ #define DEBUG_MSG_PRINT_BUFFER(buffer,length) \ do {\ int i = 0;\ - LOGD(LOG_COLOR_BLUE"BUFFER =>"LOG_COLOR_END);\ + LOGE(LOG_COLOR_BLUE"BUFFER =>"LOG_COLOR_END);\ for(; i < length; i++)\ {\ - LOGD(LOG_COLOR_BLUE" [0x%x] "LOG_COLOR_END,buffer[i]);\ + LOGE(LOG_COLOR_BLUE" [0x%x] "LOG_COLOR_END,buffer[i]);\ }\ - LOGD(LOG_COLOR_BLUE""LOG_COLOR_END);\ + LOGE(LOG_COLOR_BLUE""LOG_COLOR_END);\ }while(0) #define DEBUG_MSG_PRINT_BUFFER_CHAR(buffer,length) \ do {\ int i = 0;\ - LOGD(LOG_COLOR_BLUE"BUFFER =>"LOG_COLOR_END);\ + LOGE(LOG_COLOR_BLUE"BUFFER =>"LOG_COLOR_END);\ for(; i < length; i++)\ {\ - LOGD(LOG_COLOR_BLUE" [%c] "LOG_COLOR_END,buffer[i]);\ + LOGE(LOG_COLOR_BLUE" [%c] "LOG_COLOR_END,buffer[i]);\ }\ - LOGD(LOG_COLOR_BLUE""LOG_COLOR_END);\ + LOGE(LOG_COLOR_BLUE""LOG_COLOR_END);\ }while(0) #define DEBUG_MSG(format,args...) \ do {\ - LOGD(LOG_COLOR_CYAN" "format""LOG_COLOR_END, ##args);\ + LOGE(LOG_COLOR_CYAN" "format""LOG_COLOR_END, ##args);\ }while(0) #define DEBUG_ERR_MSG(format,args...) \ do {\ - LOGD(LOG_COLOR_RED" "format""LOG_COLOR_END, ##args);\ + LOGE(LOG_COLOR_RED" "format""LOG_COLOR_END, ##args);\ }while(0) #define DEBUG_EMUL_BEGIN() \ do\ {\ - LOGD(LOG_COLOR_CYAN" BEGIN >>>>"LOG_COLOR_END); \ + LOGE(LOG_COLOR_CYAN" BEGIN >>>>"LOG_COLOR_END); \ } while( 0 ) #define DEBUG_EMUL_END() \ do\ {\ - LOGD(LOG_COLOR_CYAN" END >>>>"LOG_COLOR_END); \ + LOGE(LOG_COLOR_CYAN" END >>>>"LOG_COLOR_END); \ } \ while( 0 ) @@ -92,8 +92,8 @@ do{ \ gettimeofday(&mytime, NULL);\ char time_string[128] = {0,};\ sprintf(time_string, "%d.%4d", mytime.tv_sec, mytime.tv_usec);\ - LOGD(str); \ - LOGD("\t time = [%s]", time_string);\ + LOGE(str); \ + LOGE("\t time = [%s]", time_string);\ }while(0) #endif diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index 63e277c..22612d0 100644 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -319,7 +319,7 @@ void __nfc_emul_util_free_mem (void** mem, char * filename, unsigned int line) { if (mem == NULL || *mem == NULL) { - SECURE_LOGD ("FILE: %s, LINE:%d, Invalid parameter in mem free util (pinter is NULL)", filename, line); + LOGE ("FILE: %s, LINE:%d, Invalid parameter in mem free util (pinter is NULL)", filename, line); return; } free(*mem); @@ -330,7 +330,7 @@ void __nfc_emul_util_alloc_mem(void** mem, int size, char * filename, unsigned i { if (mem == NULL || size <= 0) { - SECURE_LOGD ("FILE: %s, LINE:%d, Invalid parameter in mem alloc util", filename, line); + LOGE ("FILE: %s, LINE:%d, Invalid parameter in mem alloc util", filename, line); return; } @@ -338,7 +338,7 @@ void __nfc_emul_util_alloc_mem(void** mem, int size, char * filename, unsigned i if (*mem != NULL) { - SECURE_LOGD("FILE: %s, LINE:%d, WARNING: Pointer is already allocated or it was not initialized with NULL", filename, line); + LOGE("FILE: %s, LINE:%d, WARNING: Pointer is already allocated or it was not initialized with NULL", filename, line); } *mem = malloc (size); @@ -349,7 +349,7 @@ void __nfc_emul_util_alloc_mem(void** mem, int size, char * filename, unsigned i } else { - SECURE_LOGD("FILE: %s, LINE:%d, Allocation is failed", filename, line); + LOGE("FILE: %s, LINE:%d, Allocation is failed", filename, line); } } @@ -678,50 +678,44 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag /* assign data to record structure */ record.tnf = _net_nfc_get_tnf_type(atoi(name_format)); - if (strcmp(type_name, "Null")) { - DEBUG_MSG("Data : type_name "); + DEBUG_MSG("Data : type_name "); - record.typeName.length = strlen(type_name); - _nfc_emul_util_alloc_mem(record.typeName.buffer, record.typeName.length); + record.typeName.length = strlen(type_name); + _nfc_emul_util_alloc_mem(record.typeName.buffer, record.typeName.length); - if (record.typeName.buffer == NULL) { - DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); - goto ERROR; - } - memcpy(record.typeName.buffer, type_name, record.typeName.length); + if (record.typeName.buffer == NULL) { + DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); + goto ERROR; } + memcpy(record.typeName.buffer, type_name, record.typeName.length); - if (strcmp(record_id, "Null")) { - DEBUG_MSG("Data : record_id "); + DEBUG_MSG("Data : record_id "); - record.id.length = strlen(record_id); - _nfc_emul_util_alloc_mem(record.id.buffer, record.id.length); + record.id.length = strlen(record_id); + _nfc_emul_util_alloc_mem(record.id.buffer, record.id.length); - if (record.id.buffer == NULL) { - DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); - goto ERROR; - } - memcpy(record.id.buffer, record_id, record.id.length); + if (record.id.buffer == NULL) { + DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); + goto ERROR; } + memcpy(record.id.buffer, record_id, record.id.length); - if (strcmp(record_payload, "Null")) { - DEBUG_MSG("Data : record_payload "); + DEBUG_MSG("Data : record_payload "); - record.payload.length = strlen(record_payload); - _nfc_emul_util_alloc_mem(record.payload.buffer, record.payload.length); + record.payload.length = strlen(record_payload); + _nfc_emul_util_alloc_mem(record.payload.buffer, record.payload.length); - if (record.payload.buffer == NULL) { - DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); - goto ERROR; - } - memcpy(record.payload.buffer, record_payload, record.payload.length); + if (record.payload.buffer == NULL) { + DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); + goto ERROR; } + memcpy(record.payload.buffer, record_payload, record.payload.length); #ifndef __EMUL_DEBUG__ DEBUG_ERR_MSG("RECORD DATA START >>>>>>>>>>>>>>>>>>>>>>>>"); DEBUG_MSG("TNF >>>>[%d]", record.tnf); - SECURE_LOGD("type_name >>>>[%s]", type_name); - SECURE_LOGD("record_id >>>>[%s]", record_id); + LOGE("type_name >>>>[%s]", type_name); + LOGE("record_id >>>>[%s]", record_id); DEBUG_MSG("record_payload >>>>[%s]", record_payload); DEBUG_ERR_MSG("RECORD DATA END >>>>>>>>>>>>>>>>>>>>>>>>"); #endif @@ -1648,7 +1642,7 @@ static void emul_ReaderThread(void * pArg) /* make file name */ snprintf(file_name, sizeof(file_name), "%s/%s", NET_NFC_EMUL_DATA_PATH, NET_NFC_EMUL_MESSAGE_FILE_NAME ); - SECURE_LOGD("file path : %s", file_name); + LOGE("file path : %s", file_name); /* open file for poll */ emulMsg_file_fd = open(file_name, O_RDONLY|O_NONBLOCK); @@ -1777,7 +1771,7 @@ static void emul_ReaderThread(void * pArg) /* make file name */ snprintf(file_name, sizeof(file_name), "%s/%s", NET_NFC_EMUL_DATA_PATH, NET_NFC_EMUL_MESSAGE_FILE_NAME ); - SECURE_LOGD("file path : %s", file_name); + LOGE("file path : %s", file_name); time(&curTime); DEBUG_MSG("Start Current Time [%ld]", (unsigned long) curTime); -- 2.7.4 From ed9eba3b4dbe891c329a4669bf7dff5a7d861eac Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Thu, 22 Sep 2016 12:04:32 +0900 Subject: [PATCH 07/16] Fix Svace issue Signed-off-by: Jihoon Jung Change-Id: I92fa8349ab3ffb9b7246416dc4e565c296fb3b3c --- src/oem/oem_emul.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index 22612d0..0bd94a9 100644 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -513,20 +513,21 @@ static void _net_nfc_deinitialize_llcp(void) { DEBUG_EMUL_BEGIN(); - if (Snep_Server_msg->data->buffer != NULL) + if (Snep_Server_msg != NULL) { - free(Snep_Server_msg->data->buffer); - Snep_Server_msg->data->buffer = NULL; - } + if (Snep_Server_msg->data != NULL) + { - if (Snep_Server_msg->data != NULL) - { - free(Snep_Server_msg->data); - Snep_Server_msg->data = NULL; - } + if (Snep_Server_msg->data->buffer != NULL) + { + free(Snep_Server_msg->data->buffer); + Snep_Server_msg->data->buffer = NULL; + } + + free(Snep_Server_msg->data); + Snep_Server_msg->data = NULL; + } - if(Snep_Server_msg != NULL) - { free(Snep_Server_msg); Snep_Server_msg = NULL; } @@ -1655,11 +1656,15 @@ static void emul_ReaderThread(void * pArg) if((emulMsg_poll_fd = epoll_create1(EPOLL_CLOEXEC)) == -1) { DEBUG_MSG("epoll_create1 is occured"); + close(emulMsg_file_fd); + return; } if((emulMsg_poll_events = (struct epoll_event *)calloc(1, sizeof(struct epoll_event) * EPOLL_SIZE)) == NULL) { DEBUG_MSG("calloc is occured"); + close(emulMsg_file_fd); + return; } /* set event */ -- 2.7.4 From 2fd19a043c8037620122c17db345bb086d1dda8f Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Tue, 1 Nov 2016 19:57:31 +0900 Subject: [PATCH 08/16] Change path for x86_64 emulator binary Signed-off-by: Jihoon Jung Change-Id: Icf904d687cc67041fab288d4574043c2fe059cd0 --- CMakeLists.txt | 6 +----- packaging/nfc-plugin-emul.spec | 8 ++++---- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e6de5f1..c5d34c1 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,10 +37,6 @@ ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} pthread "-ldl") -IF (TIZEN_ARCH_64) - INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib64/nfc) -ELSE (TIZEN_ARCH_64) - INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib/nfc) -ENDIF(TIZEN_ARCH_64) +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib/nfc) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 9a11b55..b606f95 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -34,8 +34,8 @@ rm -rf %{buildroot} install -D -m 0644 LICENSE.Apache-2.0 %{buildroot}/%{_datadir}/license/nfc-plugin-emul -mkdir -p %{buildroot}%{_libdir}/udev/rules.d -cp 98-nfc-plugin-emul.rules %{buildroot}%{_libdir}/udev/rules.d/98-nfc-plugin-emul.rules +mkdir -p %{buildroot}/usr/lib/udev/rules.d +cp 98-nfc-plugin-emul.rules %{buildroot}/usr/lib/udev/rules.d/98-nfc-plugin-emul.rules %postun -p /sbin/ldconfig @@ -43,6 +43,6 @@ cp 98-nfc-plugin-emul.rules %{buildroot}%{_libdir}/udev/rules.d/98-nfc-plugin-em %files %defattr(-,root,root,-) -%{_libdir}/nfc/libnfc-plugin.so +/usr/lib/nfc/libnfc-plugin.so %{_datadir}/license/nfc-plugin-emul -%{_libdir}/udev/rules.d/98-nfc-plugin-emul.rules +/usr/lib/udev/rules.d/98-nfc-plugin-emul.rules -- 2.7.4 From 1f1b2dcd0d8ee42d4276dba0b1c5f5e3c0f46f57 Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Wed, 7 Dec 2016 15:21:03 +0900 Subject: [PATCH 09/16] Fix Svace issue : 150354, 150355 Signed-off-by: Jihoon Jung Change-Id: I6a09b8a2adcf7e1ede0c1dd5257b70905be1100c --- packaging/nfc-plugin-emul.spec | 2 +- src/oem/oem_emul.c | 21 ++++----------------- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 9a11b55..fe9def6 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.19 +Version: 0.0.20 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index 0bd94a9..69bd0e9 100644 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -1692,15 +1692,8 @@ static void emul_ReaderThread(void * pArg) condition = 0; } - while((num_of_files = epoll_wait(emulMsg_poll_fd, emulMsg_poll_events, EPOLL_SIZE, -1)) == 0){ - if(emulMsg_poll_fd == -1){ - DEBUG_MSG("client ipc thread is terminated"); - condition = 0; - } - else{ - DEBUG_MSG("no data is changed "); - } - + while((num_of_files = epoll_wait(emulMsg_poll_fd, emulMsg_poll_events, EPOLL_SIZE, -1)) == 0) { + DEBUG_MSG("no data is changed "); } for(index = 0; index < num_of_files; index++) @@ -2873,14 +2866,8 @@ static bool net_nfc_emul_controller_llcp_recv(net_nfc_target_handle_s* handle, n else { /* In here, we dosen't call _net_nfc_llcp_data_receive_cb. just wait event from emulator */ /*After copying data address, we will return it, immediately */ - if(data != NULL) { - DEBUG_MSG("data address is set"); - llcp_server_data = data; - } - else { - DEBUG_ERR_MSG("data address is NULL"); - return false; - } + DEBUG_MSG("data address is set"); + llcp_server_data = data; } } else { -- 2.7.4 From 7dfb1ffc30fdadcc7ae0e9c8c52e2c0cbacfb7f4 Mon Sep 17 00:00:00 2001 From: Hyihong Chae Date: Fri, 13 Jan 2017 10:53:51 +0900 Subject: [PATCH 10/16] Sync code with Tizen 3.0 branch Change-Id: I703aa80403a3283c768931a5ad90df7b1cfd2877 Signed-off-by: HyiHong Chae --- src/oem/oem_emul.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) mode change 100644 => 100755 src/oem/oem_emul.c diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c old mode 100644 new mode 100755 index 69bd0e9..e7a223e --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -216,7 +216,7 @@ static net_nfc_target_handle_s * current_working_handle = NULL; static bool g_stack_init_successful = 0; static bool g_tag_attached = 0; static bool g_p2p_attached = 0; - +static int current_connection_id = 1; /* for llcp functionality */ socket_info_s socket_info_array[LLCP_NB_SOCKET_MAX] = {{0,}}; @@ -1349,6 +1349,8 @@ static void _net_nfc_target_discovered_cb(emulMsg_s *emul_msg) return; } + target_detected->handle->connection_id = current_connection_id++; + if(target_detected->devType == NET_NFC_NFCIP1_TARGET ){ DEBUG_MSG("set llcp connection type. remote device is target"); handle->connection_type = NET_NFC_P2P_CONNECTION_TARGET; -- 2.7.4 From 6a45008ff81283c9b26db58d4b434a15430f9b19 Mon Sep 17 00:00:00 2001 From: "jh8801.jung" Date: Wed, 29 Mar 2017 19:13:22 +0900 Subject: [PATCH 11/16] Sync with 3.0 : Ver. 0.0.20 to 0.0.23 Change-Id: I051e6bf90b32357be0c08b8953782347dc477dea --- CMakeLists.txt | 2 -- packaging/nfc-plugin-emul.spec | 6 ++---- src/oem/oem_emul.c | 25 +++++++++++++++++-------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c5d34c1..a83b598 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,5 +38,3 @@ ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} pthread "-ldl") INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib/nfc) - - diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index c8baaa8..531e400 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.20 +Version: 0.0.23 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 @@ -32,8 +32,6 @@ make %{?jobs:-j%jobs} rm -rf %{buildroot} %make_install -install -D -m 0644 LICENSE.Apache-2.0 %{buildroot}/%{_datadir}/license/nfc-plugin-emul - mkdir -p %{buildroot}/usr/lib/udev/rules.d cp 98-nfc-plugin-emul.rules %{buildroot}/usr/lib/udev/rules.d/98-nfc-plugin-emul.rules @@ -42,7 +40,7 @@ cp 98-nfc-plugin-emul.rules %{buildroot}/usr/lib/udev/rules.d/98-nfc-plugin-emul %post -p /sbin/ldconfig %files +%license LICENSE.Apache-2.0 %defattr(-,root,root,-) /usr/lib/nfc/libnfc-plugin.so -%{_datadir}/license/nfc-plugin-emul /usr/lib/udev/rules.d/98-nfc-plugin-emul.rules diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index e7a223e..c4890b0 100755 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -1140,6 +1140,8 @@ static bool _net_nfc_create_ndef_from_emulMsg(emulMsg_s *emul_msg) _net_nfc_store_ndef_message(&rawdata); + _nfc_emul_util_free_mem(rawdata.buffer); + DEBUG_EMUL_END(); return retval; @@ -1257,9 +1259,11 @@ static void _net_nfc_destroy_emulMsg(emulMsg_s *emul_msg) { DEBUG_EMUL_BEGIN(); - if(emul_msg != NULL && emul_msg->file_data != NULL) + if(emul_msg != NULL) { - free(emul_msg->file_data); + if(emul_msg->file_data != NULL) + free(emul_msg->file_data); + free(emul_msg); } @@ -1485,6 +1489,8 @@ static void _net_nfc_llcp_create_snep_server_msg(snep_command_field_e resp_field if(rawdata.length > 0) memcpy(temp, rawdata.buffer, rawdata.length); + _nfc_emul_util_free_mem(rawdata.buffer); + DEBUG_EMUL_END(); } @@ -1506,6 +1512,7 @@ static bool _net_nfc_make_llcp_data(emulMsg_s *emul_msg) data_s rawdata = { NULL, 0 }; _net_nfc_retrieve_ndef_message(&rawdata); + _nfc_emul_util_free_mem(rawdata.buffer); if (emul_msg->record_count == 0 || rawdata.length == 0) { @@ -1688,12 +1695,6 @@ static void emul_ReaderThread(void * pArg) DEBUG_MSG("epoll wait >>>>"); - if(emulMsg_poll_fd == -1 || emulMsg_file_fd == -1) - { - DEBUG_MSG("client is deinitialized. "); - condition = 0; - } - while((num_of_files = epoll_wait(emulMsg_poll_fd, emulMsg_poll_events, EPOLL_SIZE, -1)) == 0) { DEBUG_MSG("no data is changed "); } @@ -2201,6 +2202,7 @@ static bool net_nfc_emul_controller_check_ndef(net_nfc_target_handle_s* handle, DEBUG_EMUL_BEGIN(); _net_nfc_retrieve_ndef_message(&rawdata); + _nfc_emul_util_free_mem(rawdata.buffer); if (_net_nfc_emul_get_is_tag_attached()) { @@ -2273,7 +2275,10 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d *result = _net_nfc_retrieve_ndef_message(&rawdata); if(*result != NET_NFC_OK) + { + _nfc_emul_util_free_mem(rawdata.buffer); return false; + } real_data_size = rawdata.length; @@ -2281,6 +2286,7 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d { DEBUG_ERR_MSG("read ndef_msg is failed >>> real_data_size is zero"); *result = NET_NFC_NO_NDEF_MESSAGE; + _nfc_emul_util_free_mem(rawdata.buffer); return false; } @@ -2289,6 +2295,7 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d if(*data == NULL) { *result = NET_NFC_ALLOC_FAIL; + _nfc_emul_util_free_mem(rawdata.buffer); return false; } @@ -2299,11 +2306,13 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d { free(*data); *result = NET_NFC_ALLOC_FAIL; + _nfc_emul_util_free_mem(rawdata.buffer); return false; } /* copy rawdata to data->buffer */ memcpy((*data)->buffer, rawdata.buffer, real_data_size); + _nfc_emul_util_free_mem(rawdata.buffer); DEBUG_EMUL_END(); -- 2.7.4 From a2de5dc4f9e72cb5c9793dd1edfa81bac2b96202 Mon Sep 17 00:00:00 2001 From: "jh8801.jung" Date: Tue, 25 Apr 2017 19:57:16 +0900 Subject: [PATCH 12/16] Fix the Svace issue and coding rule Signed-off-by: jh8801.jung Change-Id: I8001bbc3ecf8834154683fdf82ea26ba017c1ecb --- packaging/nfc-plugin-emul.spec | 2 +- src/nfc_debug_private.h | 63 ++- src/oem/oem_emul.c | 1032 ++++++++++++++++------------------------ 3 files changed, 441 insertions(+), 656 deletions(-) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 531e400..65fb8f4 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.23 +Version: 0.0.24 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 diff --git a/src/nfc_debug_private.h b/src/nfc_debug_private.h index 022504b..ade279f 100755 --- a/src/nfc_debug_private.h +++ b/src/nfc_debug_private.h @@ -29,71 +29,64 @@ #include -#define LOG_COLOR_RED "\033[0;31m" -#define LOG_COLOR_GREEN "\033[0;32m" -#define LOG_COLOR_BROWN "\033[0;33m" -#define LOG_COLOR_BLUE "\033[0;34m" -#define LOG_COLOR_PURPLE "\033[0;35m" -#define LOG_COLOR_CYAN "\033[0;36m" +#define LOG_COLOR_RED "\033[0;31m" +#define LOG_COLOR_GREEN "\033[0;32m" +#define LOG_COLOR_BROWN "\033[0;33m" +#define LOG_COLOR_BLUE "\033[0;34m" +#define LOG_COLOR_PURPLE "\033[0;35m" +#define LOG_COLOR_CYAN "\033[0;36m" #define LOG_COLOR_LIGHTBLUE "\033[0;37m" -#define LOG_COLOR_END "\033[0;m" +#define LOG_COLOR_END "\033[0;m" -#define DEBUG_MSG_PRINT_BUFFER(buffer,length) \ +#define DEBUG_MSG_PRINT_BUFFER(buffer, length) \ do {\ int i = 0;\ LOGE(LOG_COLOR_BLUE"BUFFER =>"LOG_COLOR_END);\ - for(; i < length; i++)\ - {\ - LOGE(LOG_COLOR_BLUE" [0x%x] "LOG_COLOR_END,buffer[i]);\ - }\ + for (; i < length; i++)\ + LOGE(LOG_COLOR_BLUE" [0x%x] "LOG_COLOR_END, buffer[i]);\ LOGE(LOG_COLOR_BLUE""LOG_COLOR_END);\ -}while(0) +} while (0) -#define DEBUG_MSG_PRINT_BUFFER_CHAR(buffer,length) \ +#define DEBUG_MSG_PRINT_BUFFER_CHAR(buffer, length) \ do {\ int i = 0;\ LOGE(LOG_COLOR_BLUE"BUFFER =>"LOG_COLOR_END);\ - for(; i < length; i++)\ - {\ - LOGE(LOG_COLOR_BLUE" [%c] "LOG_COLOR_END,buffer[i]);\ - }\ + for (; i < length; i++)\ + LOGE(LOG_COLOR_BLUE" [%c] "LOG_COLOR_END, buffer[i]);\ LOGE(LOG_COLOR_BLUE""LOG_COLOR_END);\ -}while(0) +} while (0) -#define DEBUG_MSG(format,args...) \ +#define DEBUG_MSG(format, args...) \ do {\ LOGE(LOG_COLOR_CYAN" "format""LOG_COLOR_END, ##args);\ -}while(0) +} while (0) -#define DEBUG_ERR_MSG(format,args...) \ +#define DEBUG_ERR_MSG(format, args...) \ do {\ LOGE(LOG_COLOR_RED" "format""LOG_COLOR_END, ##args);\ -}while(0) +} while (0) #define DEBUG_EMUL_BEGIN() \ - do\ - {\ - LOGE(LOG_COLOR_CYAN" BEGIN >>>>"LOG_COLOR_END); \ - } while( 0 ) +do {\ + LOGE(LOG_COLOR_CYAN" BEGIN >>>>"LOG_COLOR_END);\ +} while (0) #define DEBUG_EMUL_END() \ - do\ - {\ - LOGE(LOG_COLOR_CYAN" END >>>>"LOG_COLOR_END); \ - } \ - while( 0 ) +do {\ + LOGE(LOG_COLOR_CYAN" END >>>>"LOG_COLOR_END);\ +} while (0) #define PROFILING(str) \ -do{ \ +do {\ struct timeval mytime;\ char buf[128]; = {0};\ memset(buf, 0x00, 128);\ gettimeofday(&mytime, NULL);\ char time_string[128] = {0,};\ sprintf(time_string, "%d.%4d", mytime.tv_sec, mytime.tv_usec);\ - LOGE(str); \ + LOGE(str);\ LOGE("\t time = [%s]", time_string);\ -}while(0) +} while (0) #endif diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index c4890b0..1b7e8cd 100755 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -60,7 +60,7 @@ typedef enum { } emul_message_id; typedef enum { - EMUL_TAG_TOPAZ_JEWEL =1, + EMUL_TAG_TOPAZ_JEWEL = 1, EMUL_TAG_MIFARE_UL, EMUL_TAG_FELICA, EMUL_TAG_MIFARE_DESFIRE, @@ -87,7 +87,7 @@ typedef enum { NET_NFC_STATE_UNKNOWN } llcp_state_e; -typedef enum{ +typedef enum { SNEP_REQ_CONTINUE = 0x00, SNEP_REQ_GET = 0x01, SNEP_REQ_PUT = 0x02, @@ -100,15 +100,15 @@ typedef enum{ SNEP_RESP_NOT_IMPLEMENT = 0xE0, SNEP_RESP_UNSUPPORTED_VER = 0xE1, SNEP_RESP_REJECT = 0xFF, -}snep_command_field_e; +} snep_command_field_e; typedef struct _socket_info_s { net_nfc_llcp_socket_t socket_handle; bool isValid; void* user_context; -}socket_info_s; +} socket_info_s; -typedef struct _net_nfc_oem_llcp_state_t{ +typedef struct _net_nfc_oem_llcp_state_t { int client_fd; unsigned int step; unsigned int fragment_offset; @@ -129,7 +129,7 @@ typedef struct _net_nfc_oem_llcp_state_t{ } net_nfc_oem_llcp_state_t; -typedef struct _snep_msg_s{ +typedef struct _snep_msg_s { data_s *data; int offset; bool isSegment; @@ -137,23 +137,23 @@ typedef struct _snep_msg_s{ /* Members below are used for snep msg of client */ bool firstTime; bool RespContinue; -}snep_msg_s; +} snep_msg_s; -typedef struct _emulMsg_data_s{ +typedef struct _emulMsg_data_s { net_nfc_record_tnf_e tnf; data_s typeName; data_s id; data_s payload; bool realRecord; -}emulMsg_data_s; +} emulMsg_data_s; -typedef struct _emulMsg_s{ +typedef struct _emulMsg_s { emul_message_id message_id; emul_target_type target_type; int record_count; uint8_t* file_data; -}emulMsg_s; +} emulMsg_s; typedef void * (*emul_Nfc_thread_handler_t) (void * pParam); @@ -203,26 +203,26 @@ typedef void * (*emul_Nfc_thread_handler_t) (void * pParam); /****************************** VARIABLE START *******************************************/ /* listener callback */ -static target_detection_listener_cb g_emul_controller_target_cb ; -static se_transaction_listener_cb g_emul_controller_se_cb ; -static llcp_event_listener_cb g_emul_controller_llcp_cb ; -static hce_apdu_listener_cb g_emul_controller_hce_cb ; +static target_detection_listener_cb g_emul_controller_target_cb ; +static se_transaction_listener_cb g_emul_controller_se_cb ; +static llcp_event_listener_cb g_emul_controller_llcp_cb ; +static hce_apdu_listener_cb g_emul_controller_hce_cb ; /* for emulator management */ pthread_t gEmulThread; /* for stack management */ static net_nfc_target_handle_s * current_working_handle = NULL; -static bool g_stack_init_successful = 0; -static bool g_tag_attached = 0; -static bool g_p2p_attached = 0; -static int current_connection_id = 1; +static bool g_stack_init_successful = 0; +static bool g_tag_attached = 0; +static bool g_p2p_attached = 0; +static int current_connection_id = 1; /* for llcp functionality */ -socket_info_s socket_info_array[LLCP_NB_SOCKET_MAX] = {{0,}}; +socket_info_s socket_info_array[LLCP_NB_SOCKET_MAX] = { {0, } }; -snep_msg_s* Snep_Server_msg; -data_s * llcp_server_data = NULL; +snep_msg_s* Snep_Server_msg; +data_s* llcp_server_data = NULL; pthread_cond_t cond = PTHREAD_COND_INITIALIZER; @@ -234,8 +234,8 @@ pthread_cond_t cond = PTHREAD_COND_INITIALIZER; /*************************** INTERFACE START ***************************************/ -static bool net_nfc_emul_controller_init (net_nfc_error_e* result); -static bool net_nfc_emul_controller_deinit (void); +static bool net_nfc_emul_controller_init(net_nfc_error_e* result); +static bool net_nfc_emul_controller_deinit(void); static bool net_nfc_emul_controller_register_listener( target_detection_listener_cb target_detection_listener, se_transaction_listener_cb se_transaction_listener, @@ -247,7 +247,7 @@ static bool net_nfc_emul_controller_get_firmware_version(data_s **data, net_nfc_ static bool net_nfc_emul_controller_check_firmware_version(net_nfc_error_e* result); static bool net_nfc_emul_controller_update_firmware(net_nfc_error_e* result); static bool net_nfc_emul_controller_get_stack_information(net_nfc_stack_information_s* stack_info, net_nfc_error_e* result); -static bool net_nfc_emul_controller_configure_discovery (net_nfc_discovery_mode_e mode, net_nfc_event_filter_e config, net_nfc_error_e* result); +static bool net_nfc_emul_controller_configure_discovery(net_nfc_discovery_mode_e mode, net_nfc_event_filter_e config, net_nfc_error_e* result); static bool net_nfc_emul_controller_get_secure_element_list(net_nfc_secure_element_info_s* list, int* count, net_nfc_error_e* result); static bool net_nfc_emul_controller_set_secure_element_mode(net_nfc_secure_element_type_e element_type, net_nfc_secure_element_mode_e mode, net_nfc_error_e* result); static bool net_nfc_emul_controller_connect(net_nfc_target_handle_s* handle, net_nfc_error_e* result); @@ -257,35 +257,35 @@ static bool net_nfc_emul_controller_check_target_presence(net_nfc_target_handle_ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, data_s** data, net_nfc_error_e* result); static bool net_nfc_emul_controller_write_ndef(net_nfc_target_handle_s* handle, data_s* data, net_nfc_error_e* result); static bool net_nfc_emul_controller_make_read_only_ndef(net_nfc_target_handle_s* handle, net_nfc_error_e* result); -static bool net_nfc_emul_controller_transceive (net_nfc_target_handle_s* handle, net_nfc_transceive_info_s* info, data_s** data, net_nfc_error_e* result); +static bool net_nfc_emul_controller_transceive(net_nfc_target_handle_s* handle, net_nfc_transceive_info_s* info, data_s** data, net_nfc_error_e* result); static bool net_nfc_emul_controller_format_ndef(net_nfc_target_handle_s* handle, data_s* secure_key, net_nfc_error_e* result); static bool net_nfc_emul_controller_exception_handler(void); static bool net_nfc_emul_controller_is_ready(net_nfc_error_e* error); -static bool net_nfc_emul_controller_llcp_config (net_nfc_llcp_config_info_s * config, net_nfc_error_e * result); -static bool net_nfc_emul_controller_llcp_check_llcp (net_nfc_target_handle_s * handle, net_nfc_error_e* result); -static bool net_nfc_emul_controller_llcp_activate_llcp (net_nfc_target_handle_s * handle, net_nfc_error_e* result); -static bool net_nfc_emul_controller_llcp_create_socket (net_nfc_llcp_socket_t* socket, net_nfc_socket_type_e socketType, uint16_t miu, uint8_t rw, net_nfc_error_e* result, void * user_param); +static bool net_nfc_emul_controller_llcp_config(net_nfc_llcp_config_info_s * config, net_nfc_error_e * result); +static bool net_nfc_emul_controller_llcp_check_llcp(net_nfc_target_handle_s * handle, net_nfc_error_e* result); +static bool net_nfc_emul_controller_llcp_activate_llcp(net_nfc_target_handle_s * handle, net_nfc_error_e* result); +static bool net_nfc_emul_controller_llcp_create_socket(net_nfc_llcp_socket_t* socket, net_nfc_socket_type_e socketType, uint16_t miu, uint8_t rw, net_nfc_error_e* result, void * user_param); static bool net_nfc_emul_controller_llcp_bind(net_nfc_llcp_socket_t socket, uint8_t service_access_point, net_nfc_error_e* result); static bool net_nfc_emul_controller_llcp_listen(net_nfc_target_handle_s* handle, uint8_t* service_access_name, net_nfc_llcp_socket_t socket, net_nfc_error_e* result, void * user_param); -static bool net_nfc_emul_controller_llcp_accept (net_nfc_llcp_socket_t socket, net_nfc_error_e* result, void *user_param); -static bool net_nfc_emul_controller_llcp_connect_by_url( net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, uint8_t* service_access_name, net_nfc_error_e* result, void * user_param); +static bool net_nfc_emul_controller_llcp_accept(net_nfc_llcp_socket_t socket, net_nfc_error_e* result, void *user_param); +static bool net_nfc_emul_controller_llcp_connect_by_url(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, uint8_t* service_access_name, net_nfc_error_e* result, void * user_param); static bool net_nfc_emul_controller_llcp_connect(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, uint8_t service_access_point, net_nfc_error_e* result, void * user_param); static bool net_nfc_emul_controller_llcp_reject(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_error_e* result); -static bool net_nfc_emul_controller_llcp_disconnect (net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_error_e* result, void * user_param); -static bool net_nfc_emul_controller_llcp_socket_close (net_nfc_llcp_socket_t socket, net_nfc_error_e* result); +static bool net_nfc_emul_controller_llcp_disconnect(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_error_e* result, void * user_param); +static bool net_nfc_emul_controller_llcp_socket_close(net_nfc_llcp_socket_t socket, net_nfc_error_e* result); static bool net_nfc_emul_controller_llcp_recv(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, data_s* data, net_nfc_error_e* result, void * user_param); static bool net_nfc_emul_controller_llcp_send(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, data_s* data, net_nfc_error_e* result, void * user_param); static bool net_nfc_emul_controller_llcp_recv_from(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, data_s * data, net_nfc_error_e* result, void * user_param); static bool net_nfc_emul_controller_llcp_send_to(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, data_s* data, uint8_t service_access_point, net_nfc_error_e* result, void * user_param); -static bool net_nfc_emul_controller_llcp_get_remote_config (net_nfc_target_handle_s* handle, net_nfc_llcp_config_info_s *config, net_nfc_error_e* result); -static bool net_nfc_emul_controller_llcp_get_remote_socket_info (net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_llcp_socket_option_s * option, net_nfc_error_e* result); +static bool net_nfc_emul_controller_llcp_get_remote_config(net_nfc_target_handle_s* handle, net_nfc_llcp_config_info_s *config, net_nfc_error_e* result); +static bool net_nfc_emul_controller_llcp_get_remote_socket_info(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_llcp_socket_option_s * option, net_nfc_error_e* result); static bool net_nfc_emul_controller_support_nfc(net_nfc_error_e *result); static bool net_nfc_emul_controller_secure_element_open(net_nfc_secure_element_type_e element_type, net_nfc_target_handle_s **handle, net_nfc_error_e *result); static bool net_nfc_emul_controller_secure_element_get_atr(net_nfc_target_handle_s *handle, - data_s **atr, net_nfc_error_e *result); + data_s **atr, net_nfc_error_e *result); static bool net_nfc_emul_controller_secure_element_send_apdu(net_nfc_target_handle_s *handle, data_s *command, data_s **response, net_nfc_error_e *result); static bool net_nfc_emul_controller_secure_element_close(net_nfc_target_handle_s *handle, @@ -303,23 +303,22 @@ static bool net_nfc_emul_controller_secure_element_close(net_nfc_target_handle_s void __nfc_emul_util_free_mem(void** mem, char * filename, unsigned int line); /* allocation memory */ void __nfc_emul_util_alloc_mem(void** mem, int size, char * filename, unsigned int line); -#define _nfc_emul_util_alloc_mem(mem,size) __nfc_emul_util_alloc_mem((void **)&mem,size,__FILE__, __LINE__) -#define _nfc_emul_util_free_mem(mem) __nfc_emul_util_free_mem((void **)&mem,__FILE__, __LINE__) +#define _nfc_emul_util_alloc_mem(mem, size) __nfc_emul_util_alloc_mem((void **)&mem, size, __FILE__, __LINE__) +#define _nfc_emul_util_free_mem(mem) __nfc_emul_util_free_mem((void **)&mem, __FILE__, __LINE__) -static bool __net_nfc_is_valide_target_handle (net_nfc_target_handle_s * handle); -static void __net_nfc_make_valid_target_handle (net_nfc_target_handle_s ** handle); -static void __net_nfc_make_invalid_target_handle (); +static bool __net_nfc_is_valide_target_handle(net_nfc_target_handle_s * handle); +static void __net_nfc_make_valid_target_handle(net_nfc_target_handle_s ** handle); +static void __net_nfc_make_invalid_target_handle(); /*************************** STATIC FUNCTION DECLARE END ***************************************/ -void __nfc_emul_util_free_mem (void** mem, char * filename, unsigned int line) +void __nfc_emul_util_free_mem(void** mem, char * filename, unsigned int line) { - if (mem == NULL || *mem == NULL) - { - LOGE ("FILE: %s, LINE:%d, Invalid parameter in mem free util (pinter is NULL)", filename, line); + if (mem == NULL || *mem == NULL) { + LOGE("FILE: %s, LINE:%d, Invalid parameter in mem free util (pinter is NULL)", filename, line); return; } free(*mem); @@ -328,66 +327,56 @@ void __nfc_emul_util_free_mem (void** mem, char * filename, unsigned int line) void __nfc_emul_util_alloc_mem(void** mem, int size, char * filename, unsigned int line) { - if (mem == NULL || size <= 0) - { - LOGE ("FILE: %s, LINE:%d, Invalid parameter in mem alloc util", filename, line); + if (mem == NULL || size <= 0) { + LOGE("FILE: %s, LINE:%d, Invalid parameter in mem alloc util", filename, line); return; } DEBUG_MSG("size to malloc() = [%d]", size); if (*mem != NULL) - { LOGE("FILE: %s, LINE:%d, WARNING: Pointer is already allocated or it was not initialized with NULL", filename, line); - } - *mem = malloc (size); + *mem = malloc(size); if (*mem != NULL) - { - memset (*mem, 0x0, size); - } + memset(*mem, 0x0, size); else - { LOGE("FILE: %s, LINE:%d, Allocation is failed", filename, line); - } } -static bool __net_nfc_is_valide_target_handle (net_nfc_target_handle_s * handle) +static bool __net_nfc_is_valide_target_handle(net_nfc_target_handle_s * handle) { bool result = (current_working_handle == handle); - if (!result){ - DEBUG_MSG ("[WARNING]: INVALID HANDLE IS DETECTED!"); - } + if (!result) + DEBUG_MSG("[WARNING]: INVALID HANDLE IS DETECTED!"); + return result; } -static void __net_nfc_make_valid_target_handle (net_nfc_target_handle_s ** handle) +static void __net_nfc_make_valid_target_handle(net_nfc_target_handle_s ** handle) { - if (current_working_handle != NULL){ - DEBUG_MSG ("[WARNING]: HANDLE WAS ALLOCATED ALREADY!"); - } - _nfc_emul_util_alloc_mem (*handle, sizeof (net_nfc_target_handle_s)); - if (*handle != NULL) { + if (current_working_handle != NULL) + DEBUG_MSG("[WARNING]: HANDLE WAS ALLOCATED ALREADY!"); + + _nfc_emul_util_alloc_mem(*handle, sizeof(net_nfc_target_handle_s)); + if (*handle != NULL) current_working_handle = *handle; - } } -static void __net_nfc_make_invalid_target_handle () +static void __net_nfc_make_invalid_target_handle() { if (current_working_handle != NULL) { - _nfc_emul_util_free_mem (current_working_handle); + _nfc_emul_util_free_mem(current_working_handle); current_working_handle = NULL; } } -static socket_info_s * _net_nfc_get_available_socket_slot () +static socket_info_s * _net_nfc_get_available_socket_slot() { int idx = 0; - for (; idx < LLCP_NB_SOCKET_MAX; idx++) - { - if (socket_info_array [idx].isValid == false) - { - memset (&(socket_info_array[idx]), 0x00, sizeof (socket_info_s)); - socket_info_array [idx].isValid = true; + for (; idx < LLCP_NB_SOCKET_MAX; idx++) { + if (socket_info_array[idx].isValid == false) { + memset(&(socket_info_array[idx]), 0x00, sizeof(socket_info_s)); + socket_info_array[idx].isValid = true; return &(socket_info_array[idx]); } } @@ -396,31 +385,26 @@ static socket_info_s * _net_nfc_get_available_socket_slot () return NULL; } -static void _net_nfc_remove_socket_slot (net_nfc_llcp_socket_t socket) +static void _net_nfc_remove_socket_slot(net_nfc_llcp_socket_t socket) { int idx = 0; - for (; idx < LLCP_NB_SOCKET_MAX; idx++) - { - if (socket_info_array [idx].isValid == true && - socket_info_array [idx].socket_handle == socket) - { - socket_info_array [idx].isValid = false; - socket_info_array [idx].socket_handle = 0; - socket_info_array [idx].user_context= NULL; + for (; idx < LLCP_NB_SOCKET_MAX; idx++) { + if (socket_info_array[idx].isValid == true && + socket_info_array[idx].socket_handle == socket) { + socket_info_array[idx].isValid = false; + socket_info_array[idx].socket_handle = 0; + socket_info_array[idx].user_context = NULL; } } } -static socket_info_s * _net_nfc_find_server_socket (net_nfc_llcp_socket_t socket) +static socket_info_s * _net_nfc_find_server_socket(net_nfc_llcp_socket_t socket) { int idx = 0; - for (; idx < LLCP_NB_SOCKET_MAX; idx++) - { - if (socket_info_array [idx].socket_handle == socket && socket_info_array [idx].isValid == true) - { + for (; idx < LLCP_NB_SOCKET_MAX; idx++) { + if (socket_info_array[idx].socket_handle == socket && socket_info_array[idx].isValid == true) return &(socket_info_array[idx]); - } } DEBUG_ERR_MSG("_net_nfc_find_server_socket is failed"); @@ -429,7 +413,7 @@ static socket_info_s * _net_nfc_find_server_socket (net_nfc_llcp_socket_t socket ////////////// INTERFACE START ////////// -NET_NFC_EXPORT_API bool onload(net_nfc_oem_interface_s* emul_interfaces) +NET_NFC_EXPORT_API bool onload(net_nfc_oem_interface_s * emul_interfaces) { DEBUG_EMUL_BEGIN(); @@ -499,8 +483,7 @@ static void _net_nfc_initialize_llcp(void) { DEBUG_EMUL_BEGIN(); - if(Snep_Server_msg == NULL) - { + if (Snep_Server_msg == NULL) { Snep_Server_msg = (snep_msg_s *)calloc(1, sizeof(snep_msg_s)); Snep_Server_msg->data = (data_s *)calloc(1, sizeof(data_s)); Snep_Server_msg->data->buffer = (uint8_t *)calloc(1, sizeof(uint8_t) * BUFFER_LENGTH_MAX); @@ -513,13 +496,9 @@ static void _net_nfc_deinitialize_llcp(void) { DEBUG_EMUL_BEGIN(); - if (Snep_Server_msg != NULL) - { - if (Snep_Server_msg->data != NULL) - { - - if (Snep_Server_msg->data->buffer != NULL) - { + if (Snep_Server_msg != NULL) { + if (Snep_Server_msg->data != NULL) { + if (Snep_Server_msg->data->buffer != NULL) { free(Snep_Server_msg->data->buffer); Snep_Server_msg->data->buffer = NULL; } @@ -566,20 +545,18 @@ static bool _net_nfc_is_data_emulMsgData(emul_message_id messageId) bool retval = false; switch (messageId) { - case EMUL_NFC_TAG_DISCOVERED :{ - retval = true; - } + case EMUL_NFC_TAG_DISCOVERED: + retval = true; break; - case EMUL_NFC_P2P_SEND :{ - retval = true; - } + case EMUL_NFC_P2P_SEND: + retval = true; break; - case EMUL_NFC_TAG_DETACHED : - case EMUL_NFC_P2P_DISCOVERED : - case EMUL_NFC_P2P_DETACHED : - default : + case EMUL_NFC_TAG_DETACHED: + case EMUL_NFC_P2P_DISCOVERED: + case EMUL_NFC_P2P_DETACHED: + default: break; } @@ -598,35 +575,34 @@ static net_nfc_record_tnf_e _net_nfc_get_tnf_type(int name_format) net_nfc_record_tnf_e tnf = NET_NFC_RECORD_EMPTY; switch (name_format) { - case EMUL_NDEF_TNF_EMPTY : - tnf = NET_NFC_RECORD_EMPTY; + case EMUL_NDEF_TNF_EMPTY: + tnf = NET_NFC_RECORD_EMPTY; break; - case EMUL_NDEF_TNF_WELL_KNOWN : - tnf = NET_NFC_RECORD_WELL_KNOWN_TYPE; + case EMUL_NDEF_TNF_WELL_KNOWN: + tnf = NET_NFC_RECORD_WELL_KNOWN_TYPE; break; - case EMUL_NDEF_TNF_MIME_MEDIA : - tnf = NET_NFC_RECORD_MIME_TYPE; + case EMUL_NDEF_TNF_MIME_MEDIA: + tnf = NET_NFC_RECORD_MIME_TYPE; break; - case EMUL_NDEF_TNF_ABSOLUTE_URI : - tnf = NET_NFC_RECORD_URI; + case EMUL_NDEF_TNF_ABSOLUTE_URI: + tnf = NET_NFC_RECORD_URI; break; - case EMUL_NDEF_TNF_EXTERNAL : - tnf = NET_NFC_RECORD_EXTERNAL_RTD; + case EMUL_NDEF_TNF_EXTERNAL: + tnf = NET_NFC_RECORD_EXTERNAL_RTD; break; - case EMUL_NDEF_TNF_UNKNOWN : - tnf = NET_NFC_RECORD_UNKNOWN; + case EMUL_NDEF_TNF_UNKNOWN: + tnf = NET_NFC_RECORD_UNKNOWN; break; - default : - tnf = NET_NFC_RECORD_UNKNOWN; - DEBUG_MSG("data is currupted"); + default: + tnf = NET_NFC_RECORD_UNKNOWN; + DEBUG_MSG("data is currupted"); break; - } DEBUG_MSG("tnf [%d]", tnf); @@ -645,10 +621,10 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag int create_record_count = 0; char emulMsg[BUFFER_LENGTH_MAX] = { 0, }; - memcpy(emulMsg, emul_msg->file_data, strlen((char*)emul_msg->file_data)); + memcpy(emulMsg, emul_msg->file_data, sizeof(emulMsg)-1); /* parsing data and create record to record structure */ - for (index = 0; index < record_count ; index ++) { + for (index = 0; index < record_count ; index++) { char *name_format; char *type_name; char *record_id; @@ -659,20 +635,16 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag /* parse string */ if (index == 0) - { name_format = strtok((char *) emulMsg, NET_NFC_EMUL_MSG_RECORD_SEPERATOR); - } else - { name_format = strtok(NULL, NET_NFC_EMUL_MSG_RECORD_SEPERATOR); - } + type_name = strtok(NULL, NET_NFC_EMUL_MSG_RECORD_SEPERATOR); record_id = strtok(NULL, NET_NFC_EMUL_MSG_RECORD_SEPERATOR); if (index == record_count-1) { /* the last payload : we have to read sentence fully */ record_payload = strtok(NULL, "\n"); - } - else { + } else { record_payload = strtok(NULL, NET_NFC_EMUL_MSG_RECORD_SEPERATOR); } @@ -682,7 +654,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag DEBUG_MSG("Data : type_name "); record.typeName.length = strlen(type_name); - _nfc_emul_util_alloc_mem(record.typeName.buffer, record.typeName.length); + _nfc_emul_util_alloc_mem(record.typeName.buffer, record.typeName.length + 1); if (record.typeName.buffer == NULL) { DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); @@ -693,7 +665,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag DEBUG_MSG("Data : record_id "); record.id.length = strlen(record_id); - _nfc_emul_util_alloc_mem(record.id.buffer, record.id.length); + _nfc_emul_util_alloc_mem(record.id.buffer, record.id.length + 1); if (record.id.buffer == NULL) { DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); @@ -704,7 +676,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag DEBUG_MSG("Data : record_payload "); record.payload.length = strlen(record_payload); - _nfc_emul_util_alloc_mem(record.payload.buffer, record.payload.length); + _nfc_emul_util_alloc_mem(record.payload.buffer, record.payload.length + 1); if (record.payload.buffer == NULL) { DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); @@ -726,30 +698,26 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag net_nfc_error_e result = NET_NFC_OK; if (record.tnf == NET_NFC_RECORD_EMPTY) { - if((result = net_nfc_util_create_record(NET_NFC_RECORD_EMPTY, &record.typeName, &record.id, &record.payload, (ndef_record_s **) &new_record)) != NET_NFC_OK) { + if ((result = net_nfc_util_create_record(NET_NFC_RECORD_EMPTY, &record.typeName, &record.id, &record.payload, (ndef_record_s **) &new_record)) != NET_NFC_OK) { DEBUG_MSG("net_nfc_create_record failed[%d]", result); goto ERROR;; } - } - else if (record.tnf == NET_NFC_RECORD_UNKNOWN) { - if((result = net_nfc_util_create_record(NET_NFC_RECORD_UNKNOWN, &record.typeName, &record.id, &record.payload, (ndef_record_s **) &new_record)) != NET_NFC_OK) { + } else if (record.tnf == NET_NFC_RECORD_UNKNOWN) { + if ((result = net_nfc_util_create_record(NET_NFC_RECORD_UNKNOWN, &record.typeName, &record.id, &record.payload, (ndef_record_s **) &new_record)) != NET_NFC_OK) { DEBUG_MSG("net_nfc_create_record failed[%d]", result); goto ERROR;; } - } - else if ((record.tnf == NET_NFC_RECORD_WELL_KNOWN_TYPE)) { + } else if (record.tnf == NET_NFC_RECORD_WELL_KNOWN_TYPE) { if (!strncmp((char *)record.typeName.buffer, "U", 1)) { DEBUG_MSG("URI Type "); data_s payload_data = { NULL, 0 }; - if (record.payload.buffer != NULL ) - { + if (record.payload.buffer != NULL) { payload_data.length = strlen((char *)record_payload) + 1; _nfc_emul_util_alloc_mem(payload_data.buffer, payload_data.length); - if (payload_data.buffer == NULL) - { + if (payload_data.buffer == NULL) { DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); goto ERROR; } @@ -758,28 +726,25 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag memcpy(payload_data.buffer + 1, record.payload.buffer, payload_data.length - 1); } - if (net_nfc_util_create_record(record.tnf, &record.typeName, &record.id, &payload_data, (ndef_record_s**) &new_record) != NET_NFC_OK){ + if (net_nfc_util_create_record(record.tnf, &record.typeName, &record.id, &payload_data, (ndef_record_s**) &new_record) != NET_NFC_OK) { DEBUG_ERR_MSG("net_nfc_util_create_record is failed"); goto ERROR; } - if (payload_data.buffer != NULL ) + if (payload_data.buffer != NULL) _nfc_emul_util_free_mem(payload_data.buffer); - } - else if (!strncmp((char *)record.typeName.buffer, "T", 1)) { + } else if (!strncmp((char *)record.typeName.buffer, "T", 1)) { DEBUG_MSG("TEXT Type "); data_s payload_data = { NULL, 0 }; int offset = 0; int controll_byte; - if (record.payload.buffer != NULL ) - { + if (record.payload.buffer != NULL) { payload_data.length = strlen((char *)record_payload) + strlen("en-US") + 1; _nfc_emul_util_alloc_mem(payload_data.buffer, payload_data.length); - if (payload_data.buffer == NULL) - { + if (payload_data.buffer == NULL) { DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); goto ERROR; } @@ -793,24 +758,20 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag offset = offset + strlen("en-US"); memcpy(payload_data.buffer + offset, record.payload.buffer, strlen(record_payload)); - } - if (net_nfc_util_create_record(record.tnf, &record.typeName, &record.id, &payload_data, (ndef_record_s**) &new_record) != NET_NFC_OK){ + if (net_nfc_util_create_record(record.tnf, &record.typeName, &record.id, &payload_data, (ndef_record_s**) &new_record) != NET_NFC_OK) { DEBUG_ERR_MSG("net_nfc_util_create_record is failed"); goto ERROR; } - if (payload_data.buffer != NULL ) + if (payload_data.buffer != NULL) _nfc_emul_util_free_mem(payload_data.buffer); - } - else { + } else { DEBUG_ERR_MSG("NET_NFC_RECORD_WELL_KNOWN_TYPE >> typeName is wrong"); goto ERROR; } - } - else if ((record.tnf == NET_NFC_RECORD_MIME_TYPE)) { - + } else if ((record.tnf == NET_NFC_RECORD_MIME_TYPE)) { FILE *file = NULL; /* open file : size limit? 10k? */ @@ -825,26 +786,23 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag _nfc_emul_util_alloc_mem(file_data, file_len); - if (file_data == NULL) - { + if (file_data == NULL) { DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); fclose(file); goto ERROR; } /* create payload */ - do - { + do { read_count = fread(file_data + read_total, 1, file_len - read_total, file); read_total += read_count; - } - while (read_count != 0 && read_total < file_len); + } while (read_count != 0 && read_total < file_len); fclose(file); DEBUG_MSG("fread(%s) success, size %ld", record.payload.buffer, file_len); - filePayload.length= file_len; + filePayload.length = file_len; _nfc_emul_util_alloc_mem(filePayload.buffer, filePayload.length); if (filePayload.buffer == NULL) { @@ -861,15 +819,13 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag char *file_name = NULL; file_name = strrchr(record_payload, '/'); - if (file_name == NULL) { + if (file_name == NULL) file_name = (char *) record_payload; - } - else { + else file_name++; - } record.id.length = strlen(file_name); - _nfc_emul_util_alloc_mem(record.id.buffer, record.id.length); + _nfc_emul_util_alloc_mem(record.id.buffer, record.id.length + 1); if (record.id.buffer == NULL) { DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); @@ -878,51 +834,47 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag } memcpy(record.id.buffer, file_name, record.id.length); } - } - else { + } else { DEBUG_MSG("file open error"); goto ERROR;; } /* create record */ - if((result = net_nfc_util_create_record(record.tnf, &record.typeName, &record.id, &filePayload, (ndef_record_s **) &new_record)) != NET_NFC_OK) { + if ((result = net_nfc_util_create_record(record.tnf, &record.typeName, &record.id, &filePayload, (ndef_record_s **) &new_record)) != NET_NFC_OK) { DEBUG_MSG("net_nfc_create_record failed[%d]", result); goto ERROR;; } - } - else { + } else { /* NET_NFC_RECORD_URI or NET_NFC_RECORD_EXTERNAL_RTD */ - if((result = net_nfc_util_create_record(record.tnf, &record.typeName, &record.id, &record.payload, (ndef_record_s **) &new_record)) != NET_NFC_OK) { + if ((result = net_nfc_util_create_record(record.tnf, &record.typeName, &record.id, &record.payload, (ndef_record_s **) &new_record)) != NET_NFC_OK) { DEBUG_MSG("net_nfc_create_record failed[%d]", result); goto ERROR;; } } /* append record to ndef msg */ - if((result = net_nfc_util_append_record((ndef_message_s*) *ndef_message, (ndef_record_s *) new_record)) != NET_NFC_OK){ + if ((result = net_nfc_util_append_record((ndef_message_s*) *ndef_message, (ndef_record_s *) new_record)) != NET_NFC_OK) { DEBUG_MSG("net_nfc_util_append_record failed[%d]", result); goto ERROR;; } create_record_count++; DEBUG_MSG("Create Record Sucess. Create Record Count[%d]", create_record_count); -ERROR : - /* To Do : memory issue */ -#if 0 +ERROR: + /* free data */ - if (record.typeName.buffer != NULL) { + if (record.typeName.buffer != NULL) _nfc_emul_util_free_mem(record.typeName.buffer); - } - if (record.id.buffer != NULL) { + + if (record.id.buffer != NULL) _nfc_emul_util_free_mem(record.id.buffer); - } - if (record.payload.buffer != NULL) { + + if (record.payload.buffer != NULL) _nfc_emul_util_free_mem(record.payload.buffer); - } - if(filePayload.buffer != NULL) { + + if (filePayload.buffer != NULL) _nfc_emul_util_free_mem(filePayload.buffer); - } -#endif + DEBUG_MSG("Create Record Loop End"); } @@ -951,9 +903,7 @@ static bool _net_nfc_change_file_owner_permission(FILE *file) /* get passwd id */ buffer_len = sysconf(_SC_GETPW_R_SIZE_MAX); if (buffer_len == -1) - { buffer_len = 16384; - } _net_nfc_util_alloc_mem(buffer, buffer_len); if (buffer == NULL) @@ -965,9 +915,7 @@ static bool _net_nfc_change_file_owner_permission(FILE *file) /* get group id */ buffer_len = sysconf(_SC_GETGR_R_SIZE_MAX); if (buffer_len == -1) - { buffer_len = 16384; - } _net_nfc_util_alloc_mem(buffer, buffer_len); if (buffer == NULL) @@ -976,12 +924,9 @@ static bool _net_nfc_change_file_owner_permission(FILE *file) getgrnam_r("inhouse", &grp, buffer, buffer_len, &gr_inhouse); _net_nfc_util_free_mem(buffer); - if ((pw_inhouse != NULL) && (gr_inhouse != NULL)) - { + if ((pw_inhouse != NULL) && (gr_inhouse != NULL)) { if (fchown(fileno(file), pw_inhouse->pw_uid, gr_inhouse->gr_gid) < 0) - { DEBUG_MSG("failed to change owner"); - } } return true; @@ -993,9 +938,7 @@ static void _net_nfc_store_ndef_message(data_s *data) FILE *fp = NULL; if (data == NULL) - { return; - } /* create file */ snprintf(file_name, sizeof(file_name), "%s/%s/%s", "/opt/usr/share/nfc-manager-daemon", @@ -1003,20 +946,16 @@ static void _net_nfc_store_ndef_message(data_s *data) unlink(file_name); - if ((fp = fopen(file_name, "w")) != NULL) - { + if ((fp = fopen(file_name, "w")) != NULL) { int length = 0; - if ((length = fwrite(data->buffer, 1, data->length, fp)) > 0) - { + if ((length = fwrite(data->buffer, 1, data->length, fp)) > 0) { DEBUG_MSG("[%d] bytes is written", length); _net_nfc_change_file_owner_permission(fp); fflush(fp); fsync(fileno(fp)); - } - else - { + } else { DEBUG_MSG("write is failed = [%d]", data->length); } @@ -1031,16 +970,13 @@ static net_nfc_error_e _net_nfc_retrieve_ndef_message(data_s *data) net_nfc_error_e result = NET_NFC_OK; if (data == NULL) - { return NET_NFC_NULL_PARAMETER; - } /* retreive file */ snprintf(file_name, sizeof(file_name), "%s/%s/%s", "/opt/usr/share/nfc-manager-daemon", "message", "emul-ndef-message.txt"); - if ((fp = fopen(file_name, "r")) != NULL) - { + if ((fp = fopen(file_name, "r")) != NULL) { long int size = 0; /* rewind to start of file */ @@ -1050,10 +986,8 @@ static net_nfc_error_e _net_nfc_retrieve_ndef_message(data_s *data) DEBUG_MSG("message length = [%ld]", size); - if (size > 0) - { - if (net_nfc_util_init_data(data, size) == true) - { + if (size > 0) { + if (net_nfc_util_init_data(data, size) == true) { int current; size_t offset = 0; @@ -1067,26 +1001,19 @@ static net_nfc_error_e _net_nfc_retrieve_ndef_message(data_s *data) break; } while (offset < data->length); - if (offset == data->length) { + if (offset == data->length) result = NET_NFC_OK; - } else { + else result = NET_NFC_NO_NDEF_MESSAGE; - } - } - else - { + } else { result = NET_NFC_ALLOC_FAIL; } - } - else - { + } else { result = NET_NFC_OPERATION_FAIL; } fclose(fp); - } - else - { + } else { result = NET_NFC_NO_DATA_FOUND; } @@ -1097,9 +1024,8 @@ static bool _net_nfc_create_ndef_from_emulMsg(emulMsg_s *emul_msg) { DEBUG_EMUL_BEGIN(); - if (emul_msg->file_data == NULL) { + if (emul_msg->file_data == NULL) return false; - } int retval = true; net_nfc_error_e result = NET_NFC_OK; @@ -1107,37 +1033,31 @@ static bool _net_nfc_create_ndef_from_emulMsg(emulMsg_s *emul_msg) int record_count = emul_msg->record_count; - if(record_count == 0) { + if (record_count == 0) return false; - } /* create ndef msg */ ndef_message_h ndef_message = NULL; int ndef_length = 0; - if((result = net_nfc_util_create_ndef_message ((ndef_message_s **) &ndef_message)) != NET_NFC_OK) - { + if ((result = net_nfc_util_create_ndef_message((ndef_message_s **) &ndef_message)) != NET_NFC_OK) DEBUG_MSG("failed to create ndef message [%d]", result); - } /* create records and append it to ndef_msg*/ emul_msg->record_count = _net_nfc_create_records_from_emulMsg(emul_msg, (ndef_message_s **) &ndef_message, record_count); /* convert ndef msg to raw data */ - ndef_length = net_nfc_util_get_ndef_message_length ((ndef_message_s *) ndef_message); + ndef_length = net_nfc_util_get_ndef_message_length((ndef_message_s *) ndef_message); - if (!ndef_length){ + if (!ndef_length) DEBUG_MSG("ndef_message size is zero!"); - } rawdata.length = ndef_length; _nfc_emul_util_alloc_mem(rawdata.buffer, ndef_length); - if((result = net_nfc_util_convert_ndef_message_to_rawdata((ndef_message_s*)ndef_message, &rawdata)) != NET_NFC_OK) { + if ((result = net_nfc_util_convert_ndef_message_to_rawdata((ndef_message_s*)ndef_message, &rawdata)) != NET_NFC_OK) DEBUG_MSG("net_nfc_util_convert_ndef_message_to_rawdata is failed![%d]", result); - } - _net_nfc_store_ndef_message(&rawdata); _nfc_emul_util_free_mem(rawdata.buffer); @@ -1155,14 +1075,13 @@ static bool _net_nfc_create_emulMsg(emulMsg_s **emul_msg, uint8_t * data, long i char *emulMsgData; *emul_msg = (emulMsg_s *)calloc(1, sizeof(emulMsg_s)); - if(*emul_msg == NULL) + if (*emul_msg == NULL) return false; /* emulData => ID : MSG ex) 100:1,1,1,U,samsung,http://www.naver.com */ emulMsgID = strtok((char *)data, NET_NFC_EMUL_MSG_ID_SEPERATOR); - if (emulMsgID != NULL) { + if (emulMsgID != NULL) (*emul_msg)->message_id = (emul_message_id) (atoi(emulMsgID)); - } DEBUG_MSG("emul_msg->message_id >>>>[%d]", (*emul_msg)->message_id); @@ -1172,80 +1091,66 @@ static bool _net_nfc_create_emulMsg(emulMsg_s **emul_msg, uint8_t * data, long i DEBUG_MSG("emulMsgData >>>>[%s]", emulMsgData); switch ((*emul_msg)->message_id) { - case EMUL_NFC_TAG_DISCOVERED : - case EMUL_NFC_P2P_SEND : - { - /* get message : Tag Type, Record Count, Records */ - int target_type = -1; - char file_data[BUFFER_LENGTH_MAX]={ 0, }; - int length =0; - - sscanf(emulMsgData, NET_NFC_EMUL_TAG_DISCOVERED_DATA_FORMAT, &target_type, &((*emul_msg)->record_count), file_data); - - (*emul_msg)->target_type = (emul_target_type) target_type; - - length = strlen(file_data)+1; - _nfc_emul_util_alloc_mem((*emul_msg)->file_data, length); - memcpy((*emul_msg)->file_data, file_data, length); - - DEBUG_ERR_MSG("EMUL MESSAGE DATA START >>>>>>>>>>>>>>>>>>>>>>>>"); - DEBUG_MSG("message_id >>>>[%d]", (*emul_msg)->message_id); - DEBUG_MSG("target_type >>>>[%d]", (*emul_msg)->target_type); - DEBUG_MSG("record_count >>>>[%d]", (*emul_msg)->record_count); - DEBUG_MSG("file_data >>>>[%s]", (char *)(*emul_msg)->file_data); - DEBUG_ERR_MSG("EMUL MESSAGE DATA END >>>>>>>>>>>>>>>>>>>>>>>>"); - - if ( !_net_nfc_create_ndef_from_emulMsg((*emul_msg))) { - DEBUG_ERR_MSG("read ndef_msg is failed >>>"); - } + case EMUL_NFC_TAG_DISCOVERED: + case EMUL_NFC_P2P_SEND: + /* get message : Tag Type, Record Count, Records */ + int target_type = -1; + char file_data[BUFFER_LENGTH_MAX] = {0, }; + int length = 0; - DEBUG_ERR_MSG("_net_nfc_create_ndef_from_emulMsg end"); - } - break; + sscanf(emulMsgData, NET_NFC_EMUL_TAG_DISCOVERED_DATA_FORMAT, &target_type, &((*emul_msg)->record_count), file_data); - default : { - /* exception case */ - DEBUG_ERR_MSG("_net_nfc_set_emulMsg error. Data is currupted"); - return false; - } + (*emul_msg)->target_type = (emul_target_type) target_type; + + length = strlen(file_data)+1; + _nfc_emul_util_alloc_mem((*emul_msg)->file_data, length); + memcpy((*emul_msg)->file_data, file_data, length); + + DEBUG_ERR_MSG("EMUL MESSAGE DATA START >>>>>>>>>>>>>>>>>>>>>>>>"); + DEBUG_MSG("message_id >>>>[%d]", (*emul_msg)->message_id); + DEBUG_MSG("target_type >>>>[%d]", (*emul_msg)->target_type); + DEBUG_MSG("record_count >>>>[%d]", (*emul_msg)->record_count); + DEBUG_MSG("file_data >>>>[%s]", (char *)(*emul_msg)->file_data); + DEBUG_ERR_MSG("EMUL MESSAGE DATA END >>>>>>>>>>>>>>>>>>>>>>>>"); + + if (!_net_nfc_create_ndef_from_emulMsg((*emul_msg))) + DEBUG_ERR_MSG("read ndef_msg is failed >>>"); + + DEBUG_ERR_MSG("_net_nfc_create_ndef_from_emulMsg end"); break; + default: + /* exception case */ + DEBUG_ERR_MSG("_net_nfc_set_emulMsg error. Data is currupted"); + return false; + break; } - } - else { - + } else { switch ((*emul_msg)->message_id) { - case EMUL_NFC_P2P_DISCOVERED :{ - (*emul_msg)->target_type = EMUL_NFC_TARGET; - } + case EMUL_NFC_P2P_DISCOVERED: + (*emul_msg)->target_type = EMUL_NFC_TARGET; break; - case EMUL_NFC_TAG_DETACHED :{ - DEBUG_MSG("TAG DETACHED"); - if(!_net_nfc_emul_get_is_tag_attached()) - { - DEBUG_ERR_MSG("tag is not attached!!"); - return false; - } + case EMUL_NFC_TAG_DETACHED: + DEBUG_MSG("TAG DETACHED"); + if (!_net_nfc_emul_get_is_tag_attached()) { + DEBUG_ERR_MSG("tag is not attached!!"); + return false; } break; - case EMUL_NFC_P2P_DETACHED :{ - DEBUG_MSG("P2P DETACHED"); - if(!_net_nfc_emul_get_is_p2p_attached()) - { - DEBUG_ERR_MSG("tag is not attached!!"); - return false; - } + case EMUL_NFC_P2P_DETACHED: + DEBUG_MSG("P2P DETACHED"); + if (!_net_nfc_emul_get_is_p2p_attached()) { + DEBUG_ERR_MSG("tag is not attached!!"); + return false; } - break; - default : { - /* exception case */ - DEBUG_ERR_MSG("_net_nfc_set_emulMsg error. Data is currupted"); - return false; - } + default: + /* exception case */ + DEBUG_ERR_MSG("_net_nfc_set_emulMsg error. Data is currupted"); + return false; break; } } @@ -1259,9 +1164,8 @@ static void _net_nfc_destroy_emulMsg(emulMsg_s *emul_msg) { DEBUG_EMUL_BEGIN(); - if(emul_msg != NULL) - { - if(emul_msg->file_data != NULL) + if (emul_msg != NULL) { + if (emul_msg->file_data != NULL) free(emul_msg->file_data); free(emul_msg); @@ -1277,32 +1181,31 @@ static int _net_nfc_emul_convert_target_type(emul_target_type targetType) int covert = 0; switch (targetType) { - case EMUL_TAG_TOPAZ_JEWEL : - covert = NET_NFC_JEWEL_PICC; + case EMUL_TAG_TOPAZ_JEWEL: + covert = NET_NFC_JEWEL_PICC; break; - case EMUL_TAG_MIFARE_UL : - covert = NET_NFC_MIFARE_ULTRA_PICC; + case EMUL_TAG_MIFARE_UL: + covert = NET_NFC_MIFARE_ULTRA_PICC; break; - case EMUL_TAG_FELICA : - covert = NET_NFC_FELICA_PICC; + case EMUL_TAG_FELICA: + covert = NET_NFC_FELICA_PICC; break; - case EMUL_TAG_MIFARE_DESFIRE : - covert = NET_NFC_MIFARE_DESFIRE_PICC; + case EMUL_TAG_MIFARE_DESFIRE: + covert = NET_NFC_MIFARE_DESFIRE_PICC; break; - case EMUL_NFC_TARGET : - covert = NET_NFC_NFCIP1_TARGET; + case EMUL_NFC_TARGET: + covert = NET_NFC_NFCIP1_TARGET; break; - case EMUL_TARGET_TYPE_MAX : - default: - /* exception case */ - DEBUG_ERR_MSG("_net_nfc_emul_convert_target_type error. Target type is unknown"); + case EMUL_TARGET_TYPE_MAX: + default: + /* exception case */ + DEBUG_ERR_MSG("_net_nfc_emul_convert_target_type error. Target type is unknown"); break; - } DEBUG_MSG("covert [%d]", covert); @@ -1320,10 +1223,9 @@ static void _net_nfc_target_discovered_cb(emulMsg_s *emul_msg) net_nfc_target_handle_s* handle = NULL; int length = 0; - __net_nfc_make_valid_target_handle (&handle); - if(handle == NULL) { + __net_nfc_make_valid_target_handle(&handle); + if (handle == NULL) return; - } /* make msg */ net_nfc_request_target_detected_t* target_detected = NULL; @@ -1338,9 +1240,7 @@ static void _net_nfc_target_discovered_cb(emulMsg_s *emul_msg) length = sizeof(net_nfc_request_target_detected_t) + sizeof(device_info); _nfc_emul_util_alloc_mem(target_detected, length); if (target_detected == NULL) - { return; - } target_detected->length = length; target_detected->request_type = NET_NFC_MESSAGE_SERVICE_STANDALONE_TARGET_DETECTED; @@ -1355,18 +1255,15 @@ static void _net_nfc_target_discovered_cb(emulMsg_s *emul_msg) target_detected->handle->connection_id = current_connection_id++; - if(target_detected->devType == NET_NFC_NFCIP1_TARGET ){ + if (target_detected->devType == NET_NFC_NFCIP1_TARGET) { DEBUG_MSG("set llcp connection type. remote device is target"); handle->connection_type = NET_NFC_P2P_CONNECTION_TARGET; _net_nfc_emul_set_is_p2p_attached(true); - } - else if ( target_detected->devType == NET_NFC_NFCIP1_INITIATOR){ + } else if (target_detected->devType == NET_NFC_NFCIP1_INITIATOR) { DEBUG_MSG("set llcp connection type. remote device is initiator"); handle->connection_type = NET_NFC_P2P_CONNECTION_INITIATOR; _net_nfc_emul_set_is_p2p_attached(true); - } - else - { + } else { DEBUG_MSG("set tag connection"); handle->connection_type = NET_NFC_TAG_CONNECTION; _net_nfc_emul_set_is_tag_attached(true); @@ -1377,7 +1274,7 @@ static void _net_nfc_target_discovered_cb(emulMsg_s *emul_msg) memcpy(&target_detected->target_info_values.buffer, device_info, target_detected->target_info_values.length); /* call target_cb */ - if(g_emul_controller_target_cb != NULL) { + if (g_emul_controller_target_cb != NULL) { DEBUG_MSG("discovered callback is called"); g_emul_controller_target_cb(target_detected, NULL); } @@ -1441,7 +1338,7 @@ static void _net_nfc_llcp_data_receive_from_cb(void* pContext) _nfc_emul_util_alloc_mem(req_msg, sizeof(net_nfc_request_llcp_msg_t)); - if (req_msg != NULL){ + if (req_msg != NULL) { req_msg->length = sizeof(net_nfc_request_llcp_msg_t); req_msg->request_type = NET_NFC_MESSAGE_SERVICE_LLCP_RECEIVE_FROM; req_msg->result = NET_NFC_OK; @@ -1468,7 +1365,7 @@ static void _net_nfc_llcp_create_snep_server_msg(snep_command_field_e resp_field _net_nfc_retrieve_ndef_message(&rawdata); - /* version response length payload*/ + /* version response length payload*/ Snep_Server_msg->data->length = sizeof(uint8_t) + sizeof(uint8_t) + sizeof(uint32_t) + rawdata.length; /* copy version */ @@ -1486,7 +1383,7 @@ static void _net_nfc_llcp_create_snep_server_msg(snep_command_field_e resp_field temp += sizeof(uint32_t); /* copy ndef information to response msg */ - if(rawdata.length > 0) + if (rawdata.length > 0) memcpy(temp, rawdata.buffer, rawdata.length); _nfc_emul_util_free_mem(rawdata.buffer); @@ -1514,8 +1411,7 @@ static bool _net_nfc_make_llcp_data(emulMsg_s *emul_msg) _net_nfc_retrieve_ndef_message(&rawdata); _nfc_emul_util_free_mem(rawdata.buffer); - if (emul_msg->record_count == 0 || rawdata.length == 0) - { + if (emul_msg->record_count == 0 || rawdata.length == 0) { DEBUG_ERR_MSG("data is zero >>>"); return false; } @@ -1532,13 +1428,11 @@ static bool _net_nfc_make_llcp_data(emulMsg_s *emul_msg) llcp_server_data->length = Snep_Server_msg->data->length; memcpy(llcp_server_data->buffer, Snep_Server_msg->data->buffer, Snep_Server_msg->data->length); - } - else { + } else { DEBUG_MSG("send first segment >>>"); - if (llcp_server_data == NULL) { + if (llcp_server_data == NULL) return false; - } llcp_server_data->length = SNEP_MAX_BUFFER; memcpy(llcp_server_data->buffer, Snep_Server_msg->data->buffer, SNEP_MAX_BUFFER); @@ -1557,61 +1451,52 @@ static void _net_nfc_send_emulMsg_to_nfc_manager(emulMsg_s *emul_msg) DEBUG_EMUL_BEGIN(); switch (emul_msg->message_id) { - case EMUL_NFC_TAG_DISCOVERED :{ - _net_nfc_target_discovered_cb(emul_msg); - } + case EMUL_NFC_TAG_DISCOVERED: + _net_nfc_target_discovered_cb(emul_msg); break; - case EMUL_NFC_TAG_DETACHED :{ - _net_nfc_tag_detached_cb(); - } + case EMUL_NFC_TAG_DETACHED: + _net_nfc_tag_detached_cb(); break; - case EMUL_NFC_P2P_DISCOVERED : { - _net_nfc_initialize_llcp(); - _net_nfc_target_discovered_cb(emul_msg); - } + case EMUL_NFC_P2P_DISCOVERED: + _net_nfc_initialize_llcp(); + _net_nfc_target_discovered_cb(emul_msg); break; - case EMUL_NFC_P2P_SEND : { - if(!_net_nfc_emul_get_is_p2p_attached()) - { - DEBUG_ERR_MSG("target is not attached!!"); - return; - } - - if(_net_nfc_make_llcp_data(emul_msg)) { - - /* find snep server*/ - socket_info_s *socket_info = _net_nfc_find_server_socket(NET_NFC_EMUL_SNEP_SERVER_SOCKET_NUMBER); - if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); - return; - } + case EMUL_NFC_P2P_SEND: + if (!_net_nfc_emul_get_is_p2p_attached()) { + DEBUG_ERR_MSG("target is not attached!!"); + return; + } - _net_nfc_llcp_data_receive_cb(socket_info->user_context); /* call callback */ - } - else { - DEBUG_ERR_MSG("make_p2p_data is fail!!"); + if (_net_nfc_make_llcp_data(emul_msg)) { + /* find snep server*/ + socket_info_s *socket_info = _net_nfc_find_server_socket(NET_NFC_EMUL_SNEP_SERVER_SOCKET_NUMBER); + if (socket_info == NULL) { + DEBUG_ERR_MSG("socket_info is NULL"); return; } + + _net_nfc_llcp_data_receive_cb(socket_info->user_context); /* call callback */ + } else { + DEBUG_ERR_MSG("make_p2p_data is fail!!"); + return; } break; - case EMUL_NFC_P2P_DETACHED : { - if(!_net_nfc_emul_get_is_p2p_attached()) - { - DEBUG_ERR_MSG("target is not attached!!"); - return; - } - - _net_nfc_target_detached_cb(); - _net_nfc_deinitialize_llcp(); + case EMUL_NFC_P2P_DETACHED: + if (!_net_nfc_emul_get_is_p2p_attached()) { + DEBUG_ERR_MSG("target is not attached!!"); + return; } + + _net_nfc_target_detached_cb(); + _net_nfc_deinitialize_llcp(); break; - default : - DEBUG_ERR_MSG("message_id is wrong!!"); + default: + DEBUG_ERR_MSG("message_id is wrong!!"); break; } @@ -1651,7 +1536,7 @@ static void emul_ReaderThread(void * pArg) struct epoll_event *emulMsg_poll_events = NULL; /* make file name */ - snprintf(file_name, sizeof(file_name), "%s/%s", NET_NFC_EMUL_DATA_PATH, NET_NFC_EMUL_MESSAGE_FILE_NAME ); + snprintf(file_name, sizeof(file_name), "%s/%s", NET_NFC_EMUL_DATA_PATH, NET_NFC_EMUL_MESSAGE_FILE_NAME); LOGE("file path : %s", file_name); /* open file for poll */ @@ -1662,15 +1547,13 @@ static void emul_ReaderThread(void * pArg) } /* create epoll */ - if((emulMsg_poll_fd = epoll_create1(EPOLL_CLOEXEC)) == -1) - { + if ((emulMsg_poll_fd = epoll_create1(EPOLL_CLOEXEC)) == -1) { DEBUG_MSG("epoll_create1 is occured"); close(emulMsg_file_fd); return; } - if((emulMsg_poll_events = (struct epoll_event *)calloc(1, sizeof(struct epoll_event) * EPOLL_SIZE)) == NULL) - { + if ((emulMsg_poll_events = (struct epoll_event *)calloc(1, sizeof(struct epoll_event) * EPOLL_SIZE)) == NULL) { DEBUG_MSG("calloc is occured"); close(emulMsg_file_fd); return; @@ -1688,29 +1571,23 @@ static void emul_ReaderThread(void * pArg) while (condition == true) { int num_of_files = 0; - int index =0 ; + int index = 0; /* to do : I will add mutex in the future */ /* lock mutex */ DEBUG_MSG("epoll wait >>>>"); - while((num_of_files = epoll_wait(emulMsg_poll_fd, emulMsg_poll_events, EPOLL_SIZE, -1)) == 0) { + while ((num_of_files = epoll_wait(emulMsg_poll_fd, emulMsg_poll_events, EPOLL_SIZE, -1)) == 0) DEBUG_MSG("no data is changed "); - } - for(index = 0; index < num_of_files; index++) - { - if( (emulMsg_poll_events[index].events & (EPOLLHUP)) || (emulMsg_poll_events[index].events & (EPOLLERR))) - { + for (index = 0; index < num_of_files; index++) { + if ((emulMsg_poll_events[index].events & (EPOLLHUP)) || (emulMsg_poll_events[index].events & (EPOLLERR))) { DEBUG_MSG("connection is closed"); condition = 0; - } - else if(emulMsg_poll_events[index].events & EPOLLIN) - { - if(emulMsg_poll_events[index].data.fd == emulMsg_file_fd) - { + } else if (emulMsg_poll_events[index].events & EPOLLIN) { + if (emulMsg_poll_events[index].data.fd == emulMsg_file_fd) { char readbuffer[READ_BUFFER_LENGTH_MAX]; int readcnt = 0; @@ -1723,19 +1600,14 @@ static void emul_ReaderThread(void * pArg) DEBUG_MSG("message readcnt= [%d] ", readcnt); DEBUG_MSG("message = [%s] ", readbuffer); - /* remove header */ + /* remove header */ _net_nfc_process_emulMsg((uint8_t *)readbuffer + NET_NFC_EMUL_HEADER_LENGTH, (long int)readcnt - NET_NFC_EMUL_HEADER_LENGTH); - } - else - { + } else { DEBUG_MSG("not expected socket connection"); condition = 0; } - } - else - { - if(num_of_files == index) - { + } else { + if (num_of_files == index) { DEBUG_MSG("unknown event"); condition = 0; } @@ -1750,6 +1622,9 @@ static void emul_ReaderThread(void * pArg) close(emulMsg_file_fd); + if (emulMsg_poll_events != NULL) + free(emulMsg_poll_events); + DEBUG_MSG("emul_ReaderThread END >>>>"); } @@ -1771,7 +1646,7 @@ static void emul_ReaderThread(void * pArg) bool condition = true; /* make file name */ - snprintf(file_name, sizeof(file_name), "%s/%s", NET_NFC_EMUL_DATA_PATH, NET_NFC_EMUL_MESSAGE_FILE_NAME ); + snprintf(file_name, sizeof(file_name), "%s/%s", NET_NFC_EMUL_DATA_PATH, NET_NFC_EMUL_MESSAGE_FILE_NAME); LOGE("file path : %s", file_name); time(&curTime); @@ -1780,30 +1655,26 @@ static void emul_ReaderThread(void * pArg) /* polling 500 ms */ while (condition != 0) { - usleep(500 * 1000); /* open file */ if ((fp = fopen(file_name, "r")) == NULL) { DEBUG_MSG("file open error"); condition = false; - } - else { + } else { /* get the modified time of the file */ - if (stat(file_name, &st) ==0) { + if (stat(file_name, &st) == 0) { if ((unsigned long) st.st_mtime <= (unsigned long) curTime) { fclose(fp); continue; - } - else { + } else { DEBUG_MSG("FILE Modified Time [%ld]", (unsigned long) st.st_mtime); /* update current time */ time(&curTime); DEBUG_MSG("Get New Current Time [%ld]", (unsigned long) curTime); } - } - else { + } else { DEBUG_MSG("stat error"); fclose(fp); continue; @@ -1812,9 +1683,8 @@ static void emul_ReaderThread(void * pArg) /* read data */ memset(readBuffer, 0x00, READ_BUFFER_LENGTH_MAX); - if (fscanf(fp, "%[^\n]", readBuffer)) { + if (fscanf(fp, "%[^\n]", readBuffer)) DEBUG_MSG("get DATA >>>> readBuffer [%s]", readBuffer); - } /* process message */ _net_nfc_process_emulMsg((uint8_t *) readBuffer, (long int) strlen(readBuffer)); @@ -1830,7 +1700,7 @@ static void emul_ReaderThread(void * pArg) } #endif -static bool _net_nfc_emul_controller_start_thread (void) +static bool _net_nfc_emul_controller_start_thread(void) { bool ret = true; @@ -1838,7 +1708,7 @@ static bool _net_nfc_emul_controller_start_thread (void) ret = pthread_create(&gEmulThread, NULL, (emul_Nfc_thread_handler_t)emul_ReaderThread, (void*) "emul_read_thread"); - if(ret != 0) + if (ret != 0) return false; DEBUG_EMUL_END(); @@ -1846,7 +1716,7 @@ static bool _net_nfc_emul_controller_start_thread (void) return true; } -static void _net_nfc_emul_controller_stop_thread (void) +static void _net_nfc_emul_controller_stop_thread(void) { DEBUG_EMUL_BEGIN(); @@ -1861,20 +1731,18 @@ static void _net_nfc_emul_controller_stop_thread (void) DEBUG_EMUL_END(); } -static bool net_nfc_emul_controller_init (net_nfc_error_e* result) +static bool net_nfc_emul_controller_init(net_nfc_error_e* result) { bool ret = true; - if (result == NULL) { + if (result == NULL) return false; - } DEBUG_EMUL_BEGIN(); DEBUG_MSG("start stack init "); - if (g_stack_init_successful == true) - { + if (g_stack_init_successful == true) { DEBUG_MSG("Already statck is initialized"); return true; } @@ -1896,13 +1764,12 @@ static bool net_nfc_emul_controller_init (net_nfc_error_e* result) return ret; } -static bool net_nfc_emul_controller_deinit (void) +static bool net_nfc_emul_controller_deinit(void) { DEBUG_EMUL_BEGIN(); /* End thread */ - if (g_stack_init_successful == false) - { + if (g_stack_init_successful == false) { DEBUG_MSG("Already statck is deinitialized"); return true; } @@ -1922,9 +1789,8 @@ static bool net_nfc_emul_controller_register_listener( hce_apdu_listener_cb hce_apdu_listener, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -1956,9 +1822,7 @@ static bool net_nfc_emul_controller_unregister_listener() static bool net_nfc_emul_controller_get_firmware_version(data_s **data, net_nfc_error_e *result) { if (data == NULL || result == NULL) - { return false; - } *result = NET_NFC_OK; @@ -1966,7 +1830,7 @@ static bool net_nfc_emul_controller_get_firmware_version(data_s **data, net_nfc_ *data = (data_s *)calloc(1, sizeof(data_s)); - if(*data == NULL) + if (*data == NULL) return false; (*data)->length = 10; @@ -1981,9 +1845,8 @@ static bool net_nfc_emul_controller_get_firmware_version(data_s **data, net_nfc_ static bool net_nfc_emul_controller_check_firmware_version(net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -1996,9 +1859,8 @@ static bool net_nfc_emul_controller_check_firmware_version(net_nfc_error_e* resu static bool net_nfc_emul_controller_update_firmware(net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2011,9 +1873,8 @@ static bool net_nfc_emul_controller_update_firmware(net_nfc_error_e* result) static bool net_nfc_emul_controller_get_stack_information(net_nfc_stack_information_s* stack_info, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2024,49 +1885,38 @@ static bool net_nfc_emul_controller_get_stack_information(net_nfc_stack_informat return true; } -static bool net_nfc_emul_controller_configure_discovery (net_nfc_discovery_mode_e mode, net_nfc_event_filter_e config, net_nfc_error_e* result) +static bool net_nfc_emul_controller_configure_discovery(net_nfc_discovery_mode_e mode, net_nfc_event_filter_e config, net_nfc_error_e* result) { int idx; bool ret = true; if (result == NULL) - { return false; - } *result = NET_NFC_OK; - if (mode == NET_NFC_DISCOVERY_MODE_START) - { + if (mode == NET_NFC_DISCOVERY_MODE_START) { mode = NET_NFC_DISCOVERY_MODE_CONFIG; - } - else if (mode == NET_NFC_DISCOVERY_MODE_STOP) - { + } else if (mode == NET_NFC_DISCOVERY_MODE_STOP) { mode = NET_NFC_DISCOVERY_MODE_CONFIG; config = NET_NFC_ALL_DISABLE; } DEBUG_EMUL_BEGIN(); - if ((mode == NET_NFC_DISCOVERY_MODE_CONFIG)) - { - if (config == NET_NFC_ALL_DISABLE) - { + if ((mode == NET_NFC_DISCOVERY_MODE_CONFIG)) { + if (config == NET_NFC_ALL_DISABLE) { /* This handle is not useful anymore */ - __net_nfc_make_invalid_target_handle (); + __net_nfc_make_invalid_target_handle(); /* reset socket_info */ for (idx = 0; idx < LLCP_NB_SOCKET_MAX; idx++) - { _net_nfc_remove_socket_slot((net_nfc_llcp_socket_t) idx); - } DEBUG_MSG("Kill Thread"); ret = net_nfc_emul_controller_deinit(); - } - else if(config == NET_NFC_ALL_ENABLE) - { + } else if (config == NET_NFC_ALL_ENABLE) { net_nfc_error_e err; DEBUG_MSG("Create Thread"); @@ -2081,9 +1931,8 @@ static bool net_nfc_emul_controller_configure_discovery (net_nfc_discovery_mode_ static bool net_nfc_emul_controller_get_secure_element_list(net_nfc_secure_element_info_s* list, int* count, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2096,9 +1945,8 @@ static bool net_nfc_emul_controller_get_secure_element_list(net_nfc_secure_eleme static bool net_nfc_emul_controller_set_secure_element_mode(net_nfc_secure_element_type_e element_type, net_nfc_secure_element_mode_e mode, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2111,9 +1959,8 @@ static bool net_nfc_emul_controller_set_secure_element_mode(net_nfc_secure_eleme static bool net_nfc_emul_controller_check_target_presence(net_nfc_target_handle_s* handle, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2121,8 +1968,7 @@ static bool net_nfc_emul_controller_check_target_presence(net_nfc_target_handle_ if (_net_nfc_emul_get_is_tag_attached()) { return true; - } - else { + } else { DEBUG_MSG("TAG Detached"); return false; } @@ -2130,9 +1976,8 @@ static bool net_nfc_emul_controller_check_target_presence(net_nfc_target_handle_ static bool net_nfc_emul_controller_connect(net_nfc_target_handle_s* handle, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2150,9 +1995,8 @@ static bool net_nfc_emul_controller_connect(net_nfc_target_handle_s* handle, net static bool net_nfc_emul_controller_disconnect(net_nfc_target_handle_s* handle, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2164,14 +2008,12 @@ static bool net_nfc_emul_controller_disconnect(net_nfc_target_handle_s* handle, } // This handle is not useful anymore - __net_nfc_make_invalid_target_handle (); + __net_nfc_make_invalid_target_handle(); /* reset socket_info */ int idx = 0; for (; idx < LLCP_NB_SOCKET_MAX; idx++) - { _net_nfc_remove_socket_slot((net_nfc_llcp_socket_t) idx); - } DEBUG_EMUL_END(); @@ -2182,14 +2024,12 @@ static bool net_nfc_emul_controller_check_ndef(net_nfc_target_handle_s* handle, { data_s rawdata = { NULL, 0 }; - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; - if (handle == NULL || ndef_card_state == NULL || max_data_size == NULL || real_data_size == NULL || result == NULL) - { + if (handle == NULL || ndef_card_state == NULL || max_data_size == NULL || real_data_size == NULL || result == NULL) { *result = NET_NFC_NULL_PARAMETER; return false; } @@ -2204,15 +2044,12 @@ static bool net_nfc_emul_controller_check_ndef(net_nfc_target_handle_s* handle, _net_nfc_retrieve_ndef_message(&rawdata); _nfc_emul_util_free_mem(rawdata.buffer); - if (_net_nfc_emul_get_is_tag_attached()) - { + if (_net_nfc_emul_get_is_tag_attached()) { *ndef_card_state = NET_NFC_NDEF_CARD_READ_WRITE; *max_data_size = BUFFER_LENGTH_MAX; *real_data_size = rawdata.length; DEBUG_MSG("Card State : [%d] MAX data size :[%d] actual data size = [%d]", *ndef_card_state, *max_data_size, *real_data_size); - } - else - { + } else { DEBUG_MSG("target detached"); } @@ -2223,9 +2060,8 @@ static bool net_nfc_emul_controller_check_ndef(net_nfc_target_handle_s* handle, static bool net_nfc_emul_controller_make_read_only_ndef(net_nfc_target_handle_s* handle, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2248,14 +2084,12 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d DEBUG_EMUL_BEGIN(); - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; - if(handle == NULL || data == NULL || result == NULL) - { + if (handle == NULL || data == NULL || result == NULL) { DEBUG_ERR_MSG("NET_NFC_NULL_PARAMETER >>>"); *result = NET_NFC_NULL_PARAMETER; return false; @@ -2267,23 +2101,21 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d return false; } - if(!_net_nfc_emul_get_is_tag_attached()) { + if (!_net_nfc_emul_get_is_tag_attached()) { DEBUG_ERR_MSG("NET_NFC_NOT_ALLOWED_OPERATION >>>"); *result = NET_NFC_NOT_ALLOWED_OPERATION; return false; } *result = _net_nfc_retrieve_ndef_message(&rawdata); - if(*result != NET_NFC_OK) - { + if (*result != NET_NFC_OK) { _nfc_emul_util_free_mem(rawdata.buffer); return false; } real_data_size = rawdata.length; - if(real_data_size == 0) - { + if (real_data_size == 0) { DEBUG_ERR_MSG("read ndef_msg is failed >>> real_data_size is zero"); *result = NET_NFC_NO_NDEF_MESSAGE; _nfc_emul_util_free_mem(rawdata.buffer); @@ -2292,8 +2124,7 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d *data = (data_s*) calloc(1, sizeof(data_s)); - if(*data == NULL) - { + if (*data == NULL) { *result = NET_NFC_ALLOC_FAIL; _nfc_emul_util_free_mem(rawdata.buffer); return false; @@ -2302,8 +2133,7 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d (*data)->length = real_data_size; (*data)->buffer = (uint8_t *)calloc(1, real_data_size); - if((*data)->buffer == NULL) - { + if ((*data)->buffer == NULL) { free(*data); *result = NET_NFC_ALLOC_FAIL; _nfc_emul_util_free_mem(rawdata.buffer); @@ -2321,9 +2151,8 @@ static bool net_nfc_emul_controller_read_ndef(net_nfc_target_handle_s* handle, d static bool net_nfc_emul_controller_write_ndef(net_nfc_target_handle_s* handle, data_s* data, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2349,9 +2178,8 @@ static bool net_nfc_emul_controller_transceive(net_nfc_target_handle_s *handle, { bool ret = false; - if (result == NULL) { + if (result == NULL) return ret; - } if (info == NULL || info->trans_data.buffer == NULL || info->trans_data.length == 0) { @@ -2378,9 +2206,8 @@ static bool net_nfc_emul_controller_transceive(net_nfc_target_handle_s *handle, static bool net_nfc_emul_controller_format_ndef(net_nfc_target_handle_s* handle, data_s* secure_key, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2402,8 +2229,7 @@ static bool net_nfc_emul_controller_exception_handler(void) net_nfc_error_e error; - if(net_nfc_emul_controller_init(&error) == false) - { + if (net_nfc_emul_controller_init(&error) == false) { DEBUG_ERR_MSG("exception handler is failed!!"); exit(0xff); } @@ -2415,9 +2241,8 @@ static bool net_nfc_emul_controller_exception_handler(void) static bool net_nfc_emul_controller_is_ready(net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2433,11 +2258,10 @@ static bool net_nfc_emul_controller_is_ready(net_nfc_error_e* result) * LLCP definition * ********************/ -static bool net_nfc_emul_controller_llcp_config (net_nfc_llcp_config_info_s * config, net_nfc_error_e * result) +static bool net_nfc_emul_controller_llcp_config(net_nfc_llcp_config_info_s * config, net_nfc_error_e * result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2450,9 +2274,8 @@ static bool net_nfc_emul_controller_llcp_config (net_nfc_llcp_config_info_s * co static bool net_nfc_emul_controller_llcp_check_llcp(net_nfc_target_handle_s* handle, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2470,9 +2293,8 @@ static bool net_nfc_emul_controller_llcp_check_llcp(net_nfc_target_handle_s* han static bool net_nfc_emul_controller_llcp_activate_llcp(net_nfc_target_handle_s* handle, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2490,9 +2312,8 @@ static bool net_nfc_emul_controller_llcp_activate_llcp(net_nfc_target_handle_s* static bool net_nfc_emul_controller_llcp_create_socket(net_nfc_llcp_socket_t* socket, net_nfc_socket_type_e socketType, uint16_t miu, uint8_t rw, net_nfc_error_e* result, void * user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2500,7 +2321,7 @@ static bool net_nfc_emul_controller_llcp_create_socket(net_nfc_llcp_socket_t* so /* get available socket */ socket_info_s* socket_info = _net_nfc_get_available_socket_slot(); - if(socket_info == NULL) { + if (socket_info == NULL) { DEBUG_ERR_MSG("The available socket is nothing!!"); return false; } @@ -2517,28 +2338,23 @@ static bool net_nfc_emul_controller_llcp_create_socket(net_nfc_llcp_socket_t* so DEBUG_MSG("NET_NFC_STATE_EXCHANGER_SERVER"); *socket = NET_NFC_EMUL_SNEP_SERVER_SOCKET_NUMBER; - } - else if (llcp_state == NET_NFC_STATE_EXCHANGER_SERVER_NPP) { + } else if (llcp_state == NET_NFC_STATE_EXCHANGER_SERVER_NPP) { DEBUG_MSG("NET_NFC_STATE_EXCHANGER_SERVER_NPP"); *socket = NET_NFC_EMUL_NPP_SERVER_SOCKET_NUMBER; - } - else if (llcp_state == NET_NFC_STATE_EXCHANGER_CLIENT) { + } else if (llcp_state == NET_NFC_STATE_EXCHANGER_CLIENT) { DEBUG_MSG("NET_NFC_STATE_EXCHANGER_CLIENT"); *socket = NET_NFC_EMUL_CLIENT_SOCKET_NUMBER; - } - else if (llcp_state == NET_NFC_STATE_CONN_HANDOVER_REQUEST) { + } else if (llcp_state == NET_NFC_STATE_CONN_HANDOVER_REQUEST) { DEBUG_MSG("NET_NFC_STATE_CONN_HANDOVER_REQUEST"); *socket = NET_NFC_EMUL_HANDOVER_REQUEST_SOCKET_NUMBER; - } - else if (llcp_state == NET_NFC_STATE_CONN_HANDOVER_SELECT) { + } else if (llcp_state == NET_NFC_STATE_CONN_HANDOVER_SELECT) { DEBUG_MSG("NET_NFC_STATE_CONN_HANDOVER_SELECT"); *socket = NET_NFC_EMUL_HANDOVER_SELECT_SOCKET_NUMBER; - } - else { + } else { DEBUG_MSG("we doesn't support.."); return false; @@ -2556,9 +2372,8 @@ static bool net_nfc_emul_controller_llcp_create_socket(net_nfc_llcp_socket_t* so static bool net_nfc_emul_controller_llcp_bind(net_nfc_llcp_socket_t socket, uint8_t service_access_point, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2571,9 +2386,8 @@ static bool net_nfc_emul_controller_llcp_bind(net_nfc_llcp_socket_t socket, uint static bool net_nfc_emul_controller_llcp_listen(net_nfc_target_handle_s* handle, uint8_t* service_access_name, net_nfc_llcp_socket_t socket, net_nfc_error_e* result, void * user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2590,22 +2404,21 @@ static bool net_nfc_emul_controller_llcp_listen(net_nfc_target_handle_s* handle, socket_info_s *socket_info = _net_nfc_find_server_socket(socket); if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); + DEBUG_ERR_MSG("socket_info is NULL"); return false; } llcp_state_e llcp_state = NET_NFC_STATE_UNKNOWN; llcp_state = _net_nfc_get_llcp_state(socket_info->user_context); if (llcp_state == NET_NFC_STATE_UNKNOWN) { - DEBUG_ERR_MSG ("llcp_state is NET_NFC_STATE_UNKNOWN"); + DEBUG_ERR_MSG("llcp_state is NET_NFC_STATE_UNKNOWN"); return false; } if (llcp_state == NET_NFC_STATE_EXCHANGER_SERVER) { _nfc_emul_util_alloc_mem(detail, sizeof(*detail)); - if(detail != NULL) - { + if (detail != NULL) { detail->length = sizeof(*detail); detail->request_type = NET_NFC_MESSAGE_SERVICE_LLCP_LISTEN; @@ -2619,8 +2432,7 @@ static bool net_nfc_emul_controller_llcp_listen(net_nfc_target_handle_s* handle, DEBUG_MSG("accept callback is called"); g_emul_controller_llcp_cb(detail, socket_info->user_context); } - } - else { + } else { DEBUG_MSG("llcp_state is [%d]", llcp_state); } @@ -2632,9 +2444,8 @@ static bool net_nfc_emul_controller_llcp_listen(net_nfc_target_handle_s* handle, /* below accept function does not used. */ static bool net_nfc_emul_controller_llcp_accept(net_nfc_llcp_socket_t socket, net_nfc_error_e* result, void *user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2647,9 +2458,8 @@ static bool net_nfc_emul_controller_llcp_accept(net_nfc_llcp_socket_t socket, ne static bool net_nfc_emul_controller_llcp_connect(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, uint8_t service_access_point, net_nfc_error_e* result, void * user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2662,14 +2472,14 @@ static bool net_nfc_emul_controller_llcp_connect(net_nfc_target_handle_s* handle socket_info_s *socket_info = _net_nfc_find_server_socket(socket); if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); + DEBUG_ERR_MSG("socket_info is NULL"); return false; } llcp_state_e llcp_state = NET_NFC_STATE_UNKNOWN; llcp_state = _net_nfc_get_llcp_state(socket_info->user_context); if (llcp_state == NET_NFC_STATE_UNKNOWN) { - DEBUG_ERR_MSG ("llcp_state is NET_NFC_STATE_UNKNOWN"); + DEBUG_ERR_MSG("llcp_state is NET_NFC_STATE_UNKNOWN"); return false; } @@ -2678,11 +2488,10 @@ static bool net_nfc_emul_controller_llcp_connect(net_nfc_target_handle_s* handle return true; } -static bool net_nfc_emul_controller_llcp_connect_by_url( net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, uint8_t* service_access_name, net_nfc_error_e* result, void * user_param) +static bool net_nfc_emul_controller_llcp_connect_by_url(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, uint8_t* service_access_name, net_nfc_error_e* result, void * user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2695,14 +2504,14 @@ static bool net_nfc_emul_controller_llcp_connect_by_url( net_nfc_target_handle_s socket_info_s *socket_info = _net_nfc_find_server_socket(socket); if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); + DEBUG_ERR_MSG("socket_info is NULL"); return false; } llcp_state_e llcp_state = NET_NFC_STATE_UNKNOWN; llcp_state = _net_nfc_get_llcp_state(socket_info->user_context); if (llcp_state == NET_NFC_STATE_UNKNOWN) { - DEBUG_ERR_MSG ("llcp_state is NET_NFC_STATE_UNKNOWN"); + DEBUG_ERR_MSG("llcp_state is NET_NFC_STATE_UNKNOWN"); return false; } @@ -2713,9 +2522,8 @@ static bool net_nfc_emul_controller_llcp_connect_by_url( net_nfc_target_handle_s static bool net_nfc_emul_controller_llcp_send(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, data_s* data, net_nfc_error_e* result, void * user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2728,25 +2536,25 @@ static bool net_nfc_emul_controller_llcp_send(net_nfc_target_handle_s* handle, n socket_info_s *socket_info = _net_nfc_find_server_socket(socket); if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); + DEBUG_ERR_MSG("socket_info is NULL"); return false; } llcp_state_e llcp_state = NET_NFC_STATE_UNKNOWN; llcp_state = _net_nfc_get_llcp_state(socket_info->user_context); if (llcp_state == NET_NFC_STATE_UNKNOWN) { - DEBUG_ERR_MSG ("llcp_state is NET_NFC_STATE_UNKNOWN"); + DEBUG_ERR_MSG("llcp_state is NET_NFC_STATE_UNKNOWN"); return false; } - if(llcp_state == NET_NFC_STATE_EXCHANGER_SERVER) { + if (llcp_state == NET_NFC_STATE_EXCHANGER_SERVER) { net_nfc_request_llcp_msg_t *req_msg = NULL; _nfc_emul_util_alloc_mem(req_msg, sizeof(net_nfc_request_llcp_msg_t)); socket_info->user_context = user_param; - if (req_msg != NULL){ + if (req_msg != NULL) { req_msg->length = sizeof(net_nfc_request_llcp_msg_t); req_msg->request_type = NET_NFC_MESSAGE_SERVICE_LLCP_SEND; req_msg->result = NET_NFC_OK; @@ -2763,9 +2571,8 @@ static bool net_nfc_emul_controller_llcp_send(net_nfc_target_handle_s* handle, n static bool net_nfc_emul_controller_llcp_send_to(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, data_s* data, uint8_t service_access_point, net_nfc_error_e* result, void * user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2778,25 +2585,25 @@ static bool net_nfc_emul_controller_llcp_send_to(net_nfc_target_handle_s* handle socket_info_s *socket_info = _net_nfc_find_server_socket(socket); if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); + DEBUG_ERR_MSG("socket_info is NULL"); return false; } llcp_state_e llcp_state = NET_NFC_STATE_UNKNOWN; llcp_state = _net_nfc_get_llcp_state(socket_info->user_context); if (llcp_state == NET_NFC_STATE_UNKNOWN) { - DEBUG_ERR_MSG ("llcp_state is NET_NFC_STATE_UNKNOWN"); + DEBUG_ERR_MSG("llcp_state is NET_NFC_STATE_UNKNOWN"); return false; } - if(llcp_state == NET_NFC_STATE_EXCHANGER_SERVER) { + if (llcp_state == NET_NFC_STATE_EXCHANGER_SERVER) { net_nfc_request_llcp_msg_t *req_msg = NULL; _nfc_emul_util_alloc_mem(req_msg, sizeof(net_nfc_request_llcp_msg_t)); socket_info->user_context = user_param; - if (req_msg != NULL){ + if (req_msg != NULL) { req_msg->length = sizeof(net_nfc_request_llcp_msg_t); req_msg->request_type = NET_NFC_MESSAGE_SERVICE_LLCP_SEND_TO; req_msg->result = NET_NFC_OK; @@ -2814,9 +2621,8 @@ static bool net_nfc_emul_controller_llcp_send_to(net_nfc_target_handle_s* handle static bool net_nfc_emul_controller_llcp_recv(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, data_s * data, net_nfc_error_e* result, void * user_param) { - if (result == NULL || data == NULL) { + if (result == NULL || data == NULL) return false; - } *result = NET_NFC_OK; @@ -2829,14 +2635,14 @@ static bool net_nfc_emul_controller_llcp_recv(net_nfc_target_handle_s* handle, n socket_info_s *socket_info = _net_nfc_find_server_socket(socket); if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); + DEBUG_ERR_MSG("socket_info is NULL"); return false; } llcp_state_e llcp_state = NET_NFC_STATE_UNKNOWN; llcp_state = _net_nfc_get_llcp_state(socket_info->user_context); if (llcp_state == NET_NFC_STATE_UNKNOWN) { - DEBUG_ERR_MSG ("llcp_state is NET_NFC_STATE_UNKNOWN"); + DEBUG_ERR_MSG("llcp_state is NET_NFC_STATE_UNKNOWN"); return false; } @@ -2845,7 +2651,7 @@ static bool net_nfc_emul_controller_llcp_recv(net_nfc_target_handle_s* handle, n DEBUG_MSG("NET_NFC_STATE_EXCHANGER_SERVER"); socket_info->user_context = user_param; - if(Snep_Server_msg->isSegment) { + if (Snep_Server_msg->isSegment) { /* send snep msg continueosly ..*/ DEBUG_MSG("send segments for snep msg"); @@ -2862,8 +2668,7 @@ static bool net_nfc_emul_controller_llcp_recv(net_nfc_target_handle_s* handle, n memcpy(llcp_server_data->buffer, Snep_Server_msg->data->buffer+Snep_Server_msg->offset , remained_size); Snep_Server_msg->isSegment = false; - } - else { + } else { DEBUG_MSG("send continue segment >>>"); llcp_server_data->length = SNEP_MAX_BUFFER; @@ -2873,15 +2678,13 @@ static bool net_nfc_emul_controller_llcp_recv(net_nfc_target_handle_s* handle, n } _net_nfc_llcp_data_receive_cb(socket_info->user_context); /* call callback */ - } - else { + } else { /* In here, we dosen't call _net_nfc_llcp_data_receive_cb. just wait event from emulator */ /*After copying data address, we will return it, immediately */ DEBUG_MSG("data address is set"); llcp_server_data = data; } - } - else { + } else { DEBUG_MSG("we don't support.."); } @@ -2892,9 +2695,8 @@ static bool net_nfc_emul_controller_llcp_recv(net_nfc_target_handle_s* handle, n static bool net_nfc_emul_controller_llcp_recv_from(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, data_s * data, net_nfc_error_e* result, void * user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2907,14 +2709,14 @@ static bool net_nfc_emul_controller_llcp_recv_from(net_nfc_target_handle_s* hand socket_info_s *socket_info = _net_nfc_find_server_socket(socket); if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); + DEBUG_ERR_MSG("socket_info is NULL"); return false; } llcp_state_e llcp_state = NET_NFC_STATE_UNKNOWN; llcp_state = _net_nfc_get_llcp_state(socket_info->user_context); if (llcp_state == NET_NFC_STATE_UNKNOWN) { - DEBUG_ERR_MSG ("llcp_state is NET_NFC_STATE_UNKNOWN"); + DEBUG_ERR_MSG("llcp_state is NET_NFC_STATE_UNKNOWN"); return false; } @@ -2923,7 +2725,7 @@ static bool net_nfc_emul_controller_llcp_recv_from(net_nfc_target_handle_s* hand DEBUG_MSG("NET_NFC_STATE_EXCHANGER_SERVER"); socket_info->user_context = user_param; - if(Snep_Server_msg->isSegment) { + if (Snep_Server_msg->isSegment) { /* send snep msg continueosly ..*/ DEBUG_MSG("send segments for snep msg"); @@ -2940,8 +2742,7 @@ static bool net_nfc_emul_controller_llcp_recv_from(net_nfc_target_handle_s* hand memcpy(llcp_server_data->buffer, Snep_Server_msg->data->buffer+Snep_Server_msg->offset , remained_size); Snep_Server_msg->isSegment = false; - } - else { + } else { DEBUG_MSG("send continue segment >>>"); llcp_server_data->length = SNEP_MAX_BUFFER; @@ -2951,21 +2752,18 @@ static bool net_nfc_emul_controller_llcp_recv_from(net_nfc_target_handle_s* hand } _net_nfc_llcp_data_receive_from_cb(socket_info->user_context); /* call callback */ - } - else { + } else { /* In here, we dosen't call _net_nfc_llcp_data_receive_cb. just wait event from emulator */ /*After copying data address, we will return it, immediately */ - if(data != NULL) { + if (data != NULL) { DEBUG_MSG("data address is set"); llcp_server_data = data; - } - else { + } else { DEBUG_ERR_MSG("data address is NULL"); return false; } } - } - else { + } else { DEBUG_MSG("we donen't support.."); } @@ -2976,9 +2774,8 @@ static bool net_nfc_emul_controller_llcp_recv_from(net_nfc_target_handle_s* hand static bool net_nfc_emul_controller_llcp_disconnect(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_error_e* result, void * user_param) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -2991,14 +2788,14 @@ static bool net_nfc_emul_controller_llcp_disconnect(net_nfc_target_handle_s* han socket_info_s *socket_info = _net_nfc_find_server_socket(socket); if (socket_info == NULL) { - DEBUG_ERR_MSG ("socket_info is NULL"); + DEBUG_ERR_MSG("socket_info is NULL"); return false; } llcp_state_e llcp_state = NET_NFC_STATE_UNKNOWN; llcp_state = _net_nfc_get_llcp_state(socket_info->user_context); if (llcp_state == NET_NFC_STATE_UNKNOWN) { - DEBUG_ERR_MSG ("llcp_state is NET_NFC_STATE_UNKNOWN"); + DEBUG_ERR_MSG("llcp_state is NET_NFC_STATE_UNKNOWN"); return false; } @@ -3009,7 +2806,7 @@ static bool net_nfc_emul_controller_llcp_disconnect(net_nfc_target_handle_s* han socket_info->user_context = user_param; - if (req_msg != NULL){ + if (req_msg != NULL) { req_msg->length = sizeof(net_nfc_request_llcp_msg_t); req_msg->request_type = NET_NFC_MESSAGE_SERVICE_LLCP_DISCONNECT; req_msg->result = NET_NFC_OK; @@ -3028,9 +2825,8 @@ static bool net_nfc_emul_controller_llcp_disconnect(net_nfc_target_handle_s* han static bool net_nfc_emul_controller_llcp_socket_close(net_nfc_llcp_socket_t socket, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -3043,9 +2839,8 @@ static bool net_nfc_emul_controller_llcp_socket_close(net_nfc_llcp_socket_t sock static bool net_nfc_emul_controller_llcp_reject(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -3061,11 +2856,10 @@ static bool net_nfc_emul_controller_llcp_reject(net_nfc_target_handle_s* handle, return true; } -static bool net_nfc_emul_controller_llcp_get_remote_config (net_nfc_target_handle_s* handle, net_nfc_llcp_config_info_s *config, net_nfc_error_e* result) +static bool net_nfc_emul_controller_llcp_get_remote_config(net_nfc_target_handle_s* handle, net_nfc_llcp_config_info_s *config, net_nfc_error_e* result) { - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -3081,14 +2875,13 @@ static bool net_nfc_emul_controller_llcp_get_remote_config (net_nfc_target_handl return true; } -static bool net_nfc_emul_controller_llcp_get_remote_socket_info (net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_llcp_socket_option_s * option, net_nfc_error_e* result) +static bool net_nfc_emul_controller_llcp_get_remote_socket_info(net_nfc_target_handle_s* handle, net_nfc_llcp_socket_t socket, net_nfc_llcp_socket_option_s * option, net_nfc_error_e* result) { /* In llcp specification ver 1.1, default miu size is 128 */ const uint16_t default_miu = 128; - if (result == NULL) { + if (result == NULL) return false; - } *result = NET_NFC_OK; @@ -3112,8 +2905,7 @@ static bool net_nfc_emul_controller_support_nfc(net_nfc_error_e *result) bool ret = false; struct stat st = { 0, }; - if (stat("/dev/nfc0", &st) == -1) - { + if (stat("/dev/nfc0", &st) == -1) { if (result) *result = NET_NFC_NOT_SUPPORTED; return ret; @@ -3149,14 +2941,14 @@ static bool net_nfc_emul_controller_secure_element_get_atr(net_nfc_target_handle strncpy(buffer, "getatr", sizeof(buffer)); - temp = (data_s *)calloc(1, sizeof(*temp)); - if (temp != NULL) { - temp->buffer = (uint8_t *)calloc(1, length); - if (temp->buffer != NULL) { - memcpy(temp->buffer, buffer, length); - temp->length = length; - *atr = temp; - *result = NET_NFC_OK; + temp = (data_s *)calloc(1, sizeof(*temp)); + if (temp != NULL) { + temp->buffer = (uint8_t *)calloc(1, length); + if (temp->buffer != NULL) { + memcpy(temp->buffer, buffer, length); + temp->length = length; + *atr = temp; + *result = NET_NFC_OK; } else { free(temp); *result = NET_NFC_ALLOC_FAIL; @@ -3187,9 +2979,9 @@ static bool net_nfc_emul_controller_secure_element_send_apdu(net_nfc_target_hand length = strlen(buffer); - temp = (data_s *)calloc(1, sizeof(*temp)); + temp = (data_s *)calloc(1, sizeof(*temp)); if (temp != NULL) { - temp->buffer = (uint8_t *)calloc(1, length); + temp->buffer = (uint8_t *)calloc(1, length + 1); if (temp->buffer != NULL) { memcpy(temp->buffer, buffer, length); temp->length = length; @@ -3210,7 +3002,7 @@ static bool net_nfc_emul_controller_secure_element_send_apdu(net_nfc_target_hand return ret; } static bool net_nfc_emul_controller_secure_element_close(net_nfc_target_handle_s *handle, - net_nfc_error_e *result) + net_nfc_error_e *result) { DEBUG_ERR_MSG("se close start"); *result = NET_NFC_OK; -- 2.7.4 From dd80e72f0edd4933b60f852dac98a4d6e834571d Mon Sep 17 00:00:00 2001 From: Hyihong Chae Date: Thu, 27 Apr 2017 14:54:08 +0900 Subject: [PATCH 13/16] fix build error Change-Id: I297c075f745de33db92a0b84112b8d16ffbe4993 Signed-off-by: HyiHong Chae --- src/oem/oem_emul.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index 1b7e8cd..9c7e7cb 100755 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -1093,6 +1093,7 @@ static bool _net_nfc_create_emulMsg(emulMsg_s **emul_msg, uint8_t * data, long i switch ((*emul_msg)->message_id) { case EMUL_NFC_TAG_DISCOVERED: case EMUL_NFC_P2P_SEND: + { /* get message : Tag Type, Record Count, Records */ int target_type = -1; char file_data[BUFFER_LENGTH_MAX] = {0, }; @@ -1118,6 +1119,7 @@ static bool _net_nfc_create_emulMsg(emulMsg_s **emul_msg, uint8_t * data, long i DEBUG_ERR_MSG("_net_nfc_create_ndef_from_emulMsg end"); break; + } default: /* exception case */ -- 2.7.4 From 8437d512d9d8b5f290fcca951d3beb40e87cc812 Mon Sep 17 00:00:00 2001 From: "jh8801.jung" Date: Thu, 22 Jun 2017 14:38:46 +0900 Subject: [PATCH 14/16] Change for C sharp TC fail Signed-off-by: jh8801.jung Change-Id: I74cde2becefabb22c381a9f3e9504b0cbb74a2f0 --- packaging/nfc-plugin-emul.spec | 2 +- src/oem/oem_emul.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 65fb8f4..8b9b6e2 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.24 +Version: 0.0.25 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index 9c7e7cb..8ca646c 100755 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -860,6 +860,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag create_record_count++; DEBUG_MSG("Create Record Sucess. Create Record Count[%d]", create_record_count); + continue; ERROR: /* free data */ @@ -876,7 +877,7 @@ ERROR: _nfc_emul_util_free_mem(filePayload.buffer); DEBUG_MSG("Create Record Loop End"); - + break; } DEBUG_EMUL_END(); @@ -2860,6 +2861,9 @@ static bool net_nfc_emul_controller_llcp_reject(net_nfc_target_handle_s* handle, static bool net_nfc_emul_controller_llcp_get_remote_config(net_nfc_target_handle_s* handle, net_nfc_llcp_config_info_s *config, net_nfc_error_e* result) { + /* In llcp specification ver 1.1, default miu size is 128 */ + const uint16_t default_miu = 128; + if (result == NULL) return false; @@ -2872,6 +2876,8 @@ static bool net_nfc_emul_controller_llcp_get_remote_config(net_nfc_target_handle DEBUG_EMUL_BEGIN(); + config->miu = default_miu; + DEBUG_EMUL_END(); return true; -- 2.7.4 From b9897579372d3a4bec5db097cf27e45bdb78b888 Mon Sep 17 00:00:00 2001 From: "jh8801.jung" Date: Thu, 21 Sep 2017 13:15:47 +0900 Subject: [PATCH 15/16] Fix Svace issues Signed-off-by: jh8801.jung Change-Id: I278d2883215b46b1990aa29eeab092464140f43a --- packaging/nfc-plugin-emul.spec | 2 +- src/oem/oem_emul.c | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packaging/nfc-plugin-emul.spec b/packaging/nfc-plugin-emul.spec index 8b9b6e2..b11917a 100644 --- a/packaging/nfc-plugin-emul.spec +++ b/packaging/nfc-plugin-emul.spec @@ -1,6 +1,6 @@ Name: nfc-plugin-emul Summary: NFC emul plugin -Version: 0.0.25 +Version: 0.0.26 Release: 0 Group: TO_BE/FILLED_IN License: Apache-2.0 diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index 8ca646c..c6c915c 100755 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -485,7 +485,13 @@ static void _net_nfc_initialize_llcp(void) if (Snep_Server_msg == NULL) { Snep_Server_msg = (snep_msg_s *)calloc(1, sizeof(snep_msg_s)); + if (Snep_Server_msg == NULL) + return; + Snep_Server_msg->data = (data_s *)calloc(1, sizeof(data_s)); + if (Snep_Server_msg->data == NULL) + return; + Snep_Server_msg->data->buffer = (uint8_t *)calloc(1, sizeof(uint8_t) * BUFFER_LENGTH_MAX); } @@ -660,7 +666,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); goto ERROR; } - memcpy(record.typeName.buffer, type_name, record.typeName.length); + memcpy(record.typeName.buffer, type_name, sizeof(record.typeName.buffer) - 1); DEBUG_MSG("Data : record_id "); @@ -671,7 +677,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); goto ERROR; } - memcpy(record.id.buffer, record_id, record.id.length); + memcpy(record.id.buffer, record_id, sizeof(record.id.buffer) - 1); DEBUG_MSG("Data : record_payload "); @@ -682,7 +688,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag DEBUG_MSG("_nfc_emul_util_alloc_mem failed"); goto ERROR; } - memcpy(record.payload.buffer, record_payload, record.payload.length); + memcpy(record.payload.buffer, record_payload, sizeof(record.payload.buffer) - 1); #ifndef __EMUL_DEBUG__ DEBUG_ERR_MSG("RECORD DATA START >>>>>>>>>>>>>>>>>>>>>>>>"); @@ -832,7 +838,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag _nfc_emul_util_free_mem(filePayload.buffer); goto ERROR; } - memcpy(record.id.buffer, file_name, record.id.length); + memcpy(record.id.buffer, file_name, sizeof(record.id.buffer) - 1); } } else { DEBUG_MSG("file open error"); @@ -898,7 +904,7 @@ static bool _net_nfc_change_file_owner_permission(FILE *file) return false; /* change permission */ - fchmod(fileno(file), 0777); + fchmod(fileno(file), 0644); /* change owner */ /* get passwd id */ @@ -1062,6 +1068,7 @@ static bool _net_nfc_create_ndef_from_emulMsg(emulMsg_s *emul_msg) _net_nfc_store_ndef_message(&rawdata); _nfc_emul_util_free_mem(rawdata.buffer); + net_nfc_util_free_ndef_message(ndef_message); DEBUG_EMUL_END(); @@ -1839,6 +1846,9 @@ static bool net_nfc_emul_controller_get_firmware_version(data_s **data, net_nfc_ (*data)->length = 10; (*data)->buffer = (uint8_t *)calloc(1, (*data)->length); + if ((*data)->buffer == NULL) + return false; + snprintf((char *)(*data)->buffer, (*data)->length, "%d.%d", 1, 0); DEBUG_EMUL_END(); @@ -2991,7 +3001,7 @@ static bool net_nfc_emul_controller_secure_element_send_apdu(net_nfc_target_hand if (temp != NULL) { temp->buffer = (uint8_t *)calloc(1, length + 1); if (temp->buffer != NULL) { - memcpy(temp->buffer, buffer, length); + memcpy(temp->buffer, buffer, sizeof(temp->buffer) - 1); temp->length = length; *response = temp; -- 2.7.4 From 2700f17f21218efa77b6a582f3de798be2ea1fbb Mon Sep 17 00:00:00 2001 From: "jh8801.jung" Date: Fri, 13 Oct 2017 14:33:22 +0900 Subject: [PATCH 16/16] Fix coverity issue Signed-off-by: jh8801.jung Change-Id: Ie739ad173723484877cc8164902d14fd85345416 --- src/oem/oem_emul.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/oem/oem_emul.c b/src/oem/oem_emul.c index c6c915c..3b8a125 100755 --- a/src/oem/oem_emul.c +++ b/src/oem/oem_emul.c @@ -637,7 +637,7 @@ static int _net_nfc_create_records_from_emulMsg(emulMsg_s *emul_msg, ndef_messag char *record_payload; emulMsg_data_s record = { 0, }; - data_s filePayload; + data_s filePayload = { NULL, 0 }; /* parse string */ if (index == 0) @@ -1598,12 +1598,12 @@ static void emul_ReaderThread(void * pArg) condition = 0; } else if (emulMsg_poll_events[index].events & EPOLLIN) { if (emulMsg_poll_events[index].data.fd == emulMsg_file_fd) { - char readbuffer[READ_BUFFER_LENGTH_MAX]; + char readbuffer[READ_BUFFER_LENGTH_MAX + 1]; int readcnt = 0; DEBUG_MSG("precess POLLIN "); - memset(readbuffer, 0x00, sizeof(READ_BUFFER_LENGTH_MAX)); + memset(readbuffer, 0x00, sizeof(READ_BUFFER_LENGTH_MAX) + 1); readcnt = read(emulMsg_file_fd, readbuffer, READ_BUFFER_LENGTH_MAX); -- 2.7.4