From 8c6b64734c3719cac917f063cc2646e54ad15077 Mon Sep 17 00:00:00 2001 From: Wonkyu Kwon Date: Tue, 8 Oct 2013 09:52:37 +0900 Subject: [PATCH] Check target handle and return error to client Change-Id: If119cc9d498602242dded997950a617b82b4aca7 --- daemon/net_nfc_server_process_snep.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/daemon/net_nfc_server_process_snep.c b/daemon/net_nfc_server_process_snep.c index ca4f39a..c6c525f 100644 --- a/daemon/net_nfc_server_process_snep.c +++ b/daemon/net_nfc_server_process_snep.c @@ -22,6 +22,7 @@ #include "net_nfc_server_llcp.h" #include "net_nfc_server_p2p.h" #include "net_nfc_server_controller.h" +#include "net_nfc_server_tag.h" #include "net_nfc_server_snep.h" #include "net_nfc_server_util.h" #include "net_nfc_server_process_snep.h" @@ -1358,14 +1359,18 @@ net_nfc_error_e net_nfc_server_snep_server( net_nfc_target_handle_s *handle, return NET_NFC_NULL_PARAMETER; } - _net_nfc_util_alloc_mem(context, sizeof(*context)); + if (net_nfc_server_target_connected(handle) == false) { + return NET_NFC_NOT_CONNECTED; + } + _net_nfc_util_alloc_mem(context, sizeof(*context)); if (context == NULL) { NFC_ERR("_create_snep_context failed"); result = NET_NFC_ALLOC_FAIL; goto ERROR; } + context->handle = handle; context->cb = cb; context->user_param = user_param; @@ -1408,6 +1413,10 @@ net_nfc_error_e net_nfc_server_snep_server_send_get_response( return NET_NFC_INVALID_PARAM; } + if (net_nfc_server_target_connected(context->handle) == false) { + return NET_NFC_NOT_CONNECTED; + } + NFC_DBG("send get response, socket [%x]", context->socket); /* check correct status */ @@ -1605,7 +1614,7 @@ static void _net_nfc_server_snep_client_process( NFC_ERR("NET_NFC_STATE_ERROR"); /* error, invoke callback */ - NFC_ERR("_snep_server_send failed, [%d]", + NFC_ERR("_snep_client_send failed, [%d]", job->result); if (job->cb != NULL) { @@ -1685,6 +1694,10 @@ net_nfc_error_e net_nfc_server_snep_client(net_nfc_target_handle_s *handle, return NET_NFC_NULL_PARAMETER; } + if (net_nfc_server_target_connected(handle) == false) { + return NET_NFC_NOT_CONNECTED; + } + _net_nfc_util_alloc_mem(context, sizeof(*context)); if (context == NULL) { @@ -1743,6 +1756,10 @@ net_nfc_error_e net_nfc_server_snep_client_request(net_nfc_snep_handle_h snep, return NET_NFC_NULL_PARAMETER; } + if (net_nfc_server_target_connected(context->handle) == false) { + return NET_NFC_NOT_CONNECTED; + } + /* check type */ _net_nfc_util_alloc_mem(job, sizeof(*job)); if (job != NULL) @@ -1899,7 +1916,7 @@ static net_nfc_error_e _net_nfc_server_default_client_connected_cb_( if (result == NET_NFC_OK) { - net_nfc_server_snep_client_request(handle, + result = net_nfc_server_snep_client_request(handle, context->type, &context->data, _net_nfc_server_default_client_cb_, -- 2.7.4