X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fconnectivity%2Fsrc%2Fbt_edr_adapter%2Ftizen%2Fcaedrserver.c;h=f527f1dc6a7d51763e7d0981266e1fe2e3db8947;hb=3c093548382bb2542c87a67e6e5fa32552c29cb3;hp=a8665c3f772ea6ff0bd25433ed8811d5592d14b9;hpb=af20dae23be24c201b33f8f8287b2ddd59bff3d9;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrserver.c b/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrserver.c index a8665c3..f527f1d 100644 --- a/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrserver.c +++ b/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrserver.c @@ -1,4 +1,4 @@ -/* **************************************************************** +/****************************************************************** * * Copyright 2014 Samsung Electronics All Rights Reserved. * @@ -24,39 +24,40 @@ * This file provides the APIs to start and stop RFCOMM server. */ - #include #include -#include "caedrinterface.h" +#include "caedrinterface.h" #include "caadapterutils.h" #include "caedrutils.h" #include "logger.h" -#include "camutex.h" +#include "octhread.h" #include "cacommon.h" #include "caedrdevicelist.h" static int32_t g_maxPendingConnections = 10; -CAResult_t CAEDRServerStart(const char *serviceUUID, int *serverFD, u_thread_pool_t handle) +/** + * Storing RfcommserverUUID + */ +static int g_serverFD = -1; + +CAResult_t CAEDRServerStart() { OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "IN"); - VERIFY_NON_NULL(serviceUUID, EDR_ADAPTER_TAG, "Service UUID is null"); - VERIFY_NON_NULL(serverFD, EDR_ADAPTER_TAG, "Server fd holder is null"); - - if (!serviceUUID[0]) + if(-1 != g_serverFD) { - OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Invalid input: Empty service uuid!"); - return CA_STATUS_INVALID_PARAM; + OIC_LOG_V(DEBUG, EDR_ADAPTER_TAG, "%s Already running", __func__); + return CA_STATUS_OK; } bool isRunning = false; - bt_error_e err = bt_adapter_is_service_used(serviceUUID, &isRunning); + bt_error_e err = bt_adapter_is_service_used(OIC_EDR_SERVICE_ID, &isRunning); if (BT_ERROR_NONE != err) { - OIC_LOG_V(DEBUG, EDR_ADAPTER_TAG, - "Unable to find whether service is already running or not! erorr num[%x]", err); + OIC_LOG_V(ERROR, EDR_ADAPTER_TAG, + "Unable to find whether service is already running or not! error num[%x]", err); return CA_STATUS_FAILED; } @@ -68,48 +69,55 @@ CAResult_t CAEDRServerStart(const char *serviceUUID, int *serverFD, u_thread_poo int socketFD = 0; // Registers a rfcomm socket with a specific service_uuid. - err = bt_socket_create_rfcomm(serviceUUID, &socketFD); + err = bt_socket_create_rfcomm(OIC_EDR_SERVICE_ID, &socketFD); if (BT_ERROR_NONE != err) { - OIC_LOG_V(ERROR, EDR_ADAPTER_TAG, "Failed to create rfcomm socket!, error num [%x]", - err); + OIC_LOG_V(ERROR, EDR_ADAPTER_TAG, "Failed to create rfcomm socket!, error num [%x]", err); return CA_STATUS_FAILED; } // Start listening and accepting - err = bt_socket_listen_and_accept_rfcomm(socketFD, - g_maxPendingConnections); + err = bt_socket_listen_and_accept_rfcomm(socketFD, g_maxPendingConnections); if (BT_ERROR_NONE != err) { - OIC_LOG_V(ERROR, EDR_ADAPTER_TAG, "Failed in listen rfcomm socket!, error num [%x]", - err); + OIC_LOG_V(ERROR, EDR_ADAPTER_TAG, "Failed in listen rfcomm socket!, error num [%x]", err); bt_socket_destroy_rfcomm(socketFD); return CA_STATUS_FAILED; } - *serverFD = socketFD; + g_serverFD = socketFD; OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT"); return CA_STATUS_OK; } -CAResult_t CAEDRServerStop(int serverFD) +CAResult_t CAEDRServerStop() { OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "IN"); - bt_error_e err = bt_socket_destroy_rfcomm(serverFD); - if (BT_ERROR_NONE != err) + if (-1 < g_serverFD) { - OIC_LOG_V(ERROR, EDR_ADAPTER_TAG, "Failed close server socket!, error num [%x]", - err); - return CA_STATUS_FAILED; + bt_error_e err = bt_socket_destroy_rfcomm(g_serverFD); + + if (BT_ERROR_NONE != err) + { + OIC_LOG_V(ERROR, EDR_ADAPTER_TAG, "Failed close server socket!, error num [%x]", err); + return CA_STATUS_FAILED; + } + g_serverFD = -1; } OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT"); return CA_STATUS_OK; } +CAResult_t CAEDRServerInitialize(ca_thread_pool_t handle) +{ + OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "CAEDRServerInitialize"); + return CA_STATUS_OK; +} + void CAEDRServerTerminate() { // This is just a dummy @@ -122,4 +130,3 @@ CAResult_t CAEDRManagerReadData(void) OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT"); return CA_NOT_SUPPORTED; } -