From 66497d8fbfe49724d6633da06472de8f9a45d1fb Mon Sep 17 00:00:00 2001 From: "jihwan.seo" Date: Tue, 23 Jun 2015 22:14:45 +0900 Subject: [PATCH] clean up endpoint methods. - There are not flexible things in CA codes which related to handling Endpoint. : all endpoint objects will be managed by remotehandler.c : all clone methods related to Endpoint will be managed by remotehandler.c (not AdapterUtil) - fixed previous Transport type in some endpoint method since previous Type was still used in there (CA_LE / CA_EDR) so i replaced it with CA_ADAPTER_GATT_BTLE / CA_ADAPTER_RFCOMM_BTEDR (already done by https://gerrit.iotivity.org/gerrit/#/c/1401/) Change-Id: Ib8400bbea0c3b4c005b8bec68ded2ed66c337c7b Signed-off-by: jihwan.seo Reviewed-on: https://gerrit.iotivity.org/gerrit/1404 Tested-by: jenkins-iotivity Reviewed-by: Naga Ashok Jampani Reviewed-by: Erich Keane --- .../csdk/connectivity/build/android/jni/Android.mk | 5 +- resource/csdk/connectivity/common/SConscript | 2 +- .../{ => common}/inc/caremotehandler.h | 12 +++- .../{ => common}/src/caremotehandler.c | 26 ++++++++- resource/csdk/connectivity/inc/caadapterutils.h | 19 ------- resource/csdk/connectivity/src/SConscript | 2 - .../connectivity/src/adapter_util/caadapterutils.c | 66 ---------------------- .../src/bt_edr_adapter/android/caedrclient.c | 9 +-- .../connectivity/src/bt_edr_adapter/caedradapter.c | 30 +++++----- .../src/bt_edr_adapter/tizen/caedrnwmonitor.c | 3 +- .../connectivity/src/bt_le_adapter/caleadapter.c | 31 ++++++---- .../src/bt_le_adapter/caleadapter_singlethread.c | 8 ++- .../csdk/connectivity/src/caconnectivitymanager.c | 23 +++++++- .../src/caconnectivitymanager_singlethread.c | 23 +++++++- resource/csdk/connectivity/src/camessagehandler.c | 18 +++--- .../src/camessagehandler_singlethread.c | 4 +- resource/csdk/connectivity/src/caretransmission.c | 4 +- .../src/caretransmission_singlethread.c | 4 +- .../csdk/connectivity/src/ip_adapter/caipadapter.c | 11 ++-- .../src/ip_adapter/caipadapter_singlethread.c | 17 +++--- 20 files changed, 162 insertions(+), 155 deletions(-) rename resource/csdk/connectivity/{ => common}/inc/caremotehandler.h (83%) rename resource/csdk/connectivity/{ => common}/src/caremotehandler.c (90%) diff --git a/resource/csdk/connectivity/build/android/jni/Android.mk b/resource/csdk/connectivity/build/android/jni/Android.mk index 104f536..60b13b7 100644 --- a/resource/csdk/connectivity/build/android/jni/Android.mk +++ b/resource/csdk/connectivity/build/android/jni/Android.mk @@ -116,7 +116,8 @@ LOCAL_C_INCLUDES += $(OIC_C_COMMON_PATH)/oic_string/include LOCAL_SRC_FILES = oic_logger.c oic_console_logger.c logger.c \ uarraylist.c uqueue.c \ - cathreadpool_pthreads.c camutex_pthreads.c + cathreadpool_pthreads.c camutex_pthreads.c \ + caremotehandler.c include $(BUILD_STATIC_LIBRARY) @@ -169,7 +170,7 @@ LOCAL_CFLAGS += $(BUILD_FLAG) LOCAL_CFLAGS += -std=c99 -DWITH_POSIX LOCAL_SRC_FILES = \ - caconnectivitymanager.c caremotehandler.c cainterfacecontroller.c \ + caconnectivitymanager.c cainterfacecontroller.c \ camessagehandler.c canetworkconfigurator.c caprotocolmessage.c \ caretransmission.c caqueueingthread.c \ $(ADAPTER_UTILS)/caadapternetdtls.c $(ADAPTER_UTILS)/caadapterutils.c \ diff --git a/resource/csdk/connectivity/common/SConscript b/resource/csdk/connectivity/common/SConscript index bc75711..6810416 100644 --- a/resource/csdk/connectivity/common/SConscript +++ b/resource/csdk/connectivity/common/SConscript @@ -29,6 +29,7 @@ for item in temp: ca_common_src = [ ca_common_src_path + 'uarraylist.c', ca_common_src_path + 'uqueue.c', + ca_common_src_path + 'caremotehandler.c' ] if ca_os == 'arduino': @@ -55,4 +56,3 @@ else: env.AppendUnique(CA_SRC = ca_common_src) env.AppendUnique(CA_SRC = platform_src) - diff --git a/resource/csdk/connectivity/inc/caremotehandler.h b/resource/csdk/connectivity/common/inc/caremotehandler.h similarity index 83% rename from resource/csdk/connectivity/inc/caremotehandler.h rename to resource/csdk/connectivity/common/inc/caremotehandler.h index 0aed071..c578a89 100644 --- a/resource/csdk/connectivity/inc/caremotehandler.h +++ b/resource/csdk/connectivity/common/inc/caremotehandler.h @@ -42,11 +42,21 @@ extern "C" CAEndpoint_t *CACloneEndpoint(const CAEndpoint_t *endpoint); /** + * @brief Allocate CAEndpoint_t instance. + * @param flags [IN] Transport flag + * @param adapter [IN] Adapter type + * @param address [IN] Address + * @param port [IN] Port + * @return #CA_STATUS_OK or Appropriate error code + */ +CAEndpoint_t *CACreateEndpointObject(CATransportFlags_t flags, CATransportAdapter_t adapter, + const char *address, uint16_t port); +/** * @brief Destroy remote endpoint * @param endpoint [IN] endpoint information where the data has to be sent * @return none */ -void CADestroyEndpointInternal(CAEndpoint_t *rep); +void CAFreeEndpoint(CAEndpoint_t *rep); /** * @brief Creates a new request information diff --git a/resource/csdk/connectivity/src/caremotehandler.c b/resource/csdk/connectivity/common/src/caremotehandler.c similarity index 90% rename from resource/csdk/connectivity/src/caremotehandler.c rename to resource/csdk/connectivity/common/src/caremotehandler.c index df7e8f3..29915d8 100644 --- a/resource/csdk/connectivity/src/caremotehandler.c +++ b/resource/csdk/connectivity/common/src/caremotehandler.c @@ -239,7 +239,31 @@ CAResponseInfo_t *CACloneResponseInfo(const CAResponseInfo_t *rep) return clone; } -void CADestroyEndpointInternal(CAEndpoint_t *rep) +CAEndpoint_t *CACreateEndpointObject(CATransportFlags_t flags, + CATransportAdapter_t adapter, + const char *address, + uint16_t port) +{ + CAEndpoint_t *info = (CAEndpoint_t *)OICCalloc(1, sizeof(CAEndpoint_t)); + if (NULL == info) + { + OIC_LOG(ERROR, TAG, "Memory allocation failed !"); + return NULL; + } + + if (address) + { + OICStrcpy(info->addr, sizeof(info->addr), address); + info->addr[MAX_ADDR_STR_SIZE_CA - 1] = '\0'; + } + info->flags = flags; + info->adapter = adapter; + info->port = port; + + return info; +} + +void CAFreeEndpoint(CAEndpoint_t *rep) { OICFree(rep); } diff --git a/resource/csdk/connectivity/inc/caadapterutils.h b/resource/csdk/connectivity/inc/caadapterutils.h index a9b3d9e..9d7a587 100644 --- a/resource/csdk/connectivity/inc/caadapterutils.h +++ b/resource/csdk/connectivity/inc/caadapterutils.h @@ -117,25 +117,6 @@ typedef struct void CALogPDUData(coap_pdu_t *pdu); /** - * @fn CAAdapterCloneEndpoint - * @brief Create CAEndpoint_t duplicate instance. - */ -CAEndpoint_t *CAAdapterCloneEndpoint(const CAEndpoint_t *endpoint); - -/** - * @fn CAAdapterFreeEndpoint - * @brief Deallocate CAEndpoint_t instance. - */ -void CAAdapterFreeEndpoint(CAEndpoint_t *localEndPoint); - -/** - * @fn CAAdapterCreateEndpoint - * @brief Allocate CAEndpoint_t instance. - */ -CAEndpoint_t *CAAdapterCreateEndpoint(CATransportFlags_t flags, - CATransportAdapter_t adapter, const char *address, uint16_t port); - -/** * @fn CAParseIPv4AddressInternal * @brief To parse the IP address and port from "ipaddress:port" * @param ipAddrStr [IN] IP address to be parsed diff --git a/resource/csdk/connectivity/src/SConscript b/resource/csdk/connectivity/src/SConscript index 234e65e..82876d8 100755 --- a/resource/csdk/connectivity/src/SConscript +++ b/resource/csdk/connectivity/src/SConscript @@ -60,7 +60,6 @@ if ca_os == 'arduino': 'camessagehandler_singlethread.c', 'canetworkconfigurator.c', 'caprotocolmessage.c', - 'caremotehandler.c', 'caretransmission_singlethread.c', ] else: @@ -72,7 +71,6 @@ else: 'canetworkconfigurator.c', 'caprotocolmessage.c', 'caqueueingthread.c', - 'caremotehandler.c', 'caretransmission.c', ] if secured == '1': diff --git a/resource/csdk/connectivity/src/adapter_util/caadapterutils.c b/resource/csdk/connectivity/src/adapter_util/caadapterutils.c index 0eb55a5..80ac0cc 100644 --- a/resource/csdk/connectivity/src/adapter_util/caadapterutils.c +++ b/resource/csdk/connectivity/src/adapter_util/caadapterutils.c @@ -65,72 +65,6 @@ void CALogPDUData(coap_pdu_t *pdu) OIC_LOG_V(DEBUG, CA_ADAPTER_UTILS_TAG, "PDU Maker - token : %s", pdu->hdr->token); } -CAEndpoint_t *CAAdapterCreateEndpoint(CATransportFlags_t flags, - CATransportAdapter_t adapter, - const char *address, - uint16_t port) -{ - CAEndpoint_t *info = (CAEndpoint_t *)OICCalloc(1, sizeof(CAEndpoint_t)); - if (NULL == info) - { - OIC_LOG(ERROR, CA_ADAPTER_UTILS_TAG, "Memory allocation failed !"); - return NULL; - } - - if (address) - { - OICStrcpy(info->addr, sizeof(info->addr), address); - info->addr[MAX_ADDR_STR_SIZE_CA - 1] = '\0'; - } - info->flags = flags; - info->adapter = adapter; - info->port = port; - - return info; -} - -CAEndpoint_t *CAAdapterCreateLocalEndpoint(CATransportFlags_t flags, - CATransportAdapter_t adapter, const char *address) -{ - return CAAdapterCreateEndpoint(flags, adapter, address, 0); -} - -CAResult_t CACreateEndpoint(CATransportFlags_t flags, - CATransportAdapter_t adapter, - const char *addr, - uint16_t port, - CAEndpoint_t **object) -{ - VERIFY_NON_NULL_RET(object, CA_ADAPTER_UTILS_TAG, "Endpoint is NULL", CA_STATUS_INVALID_PARAM); - CAEndpoint_t *endpoint = CAAdapterCreateEndpoint(flags, adapter, addr, port); - if (!endpoint) - { - return CA_STATUS_FAILED; - } - *object = endpoint; - return CA_STATUS_OK; -} - - -CAEndpoint_t *CAAdapterCloneEndpoint(const CAEndpoint_t *endpoint) -{ - VERIFY_NON_NULL_RET(endpoint, CA_ADAPTER_UTILS_TAG, "endpoint is NULL", NULL); - - CAEndpoint_t *info = (CAEndpoint_t *)OICCalloc(1, sizeof (CAEndpoint_t)); - if (NULL == info) - { - OIC_LOG(ERROR, CA_ADAPTER_UTILS_TAG, "Memory allocation failed !"); - return NULL; - } - *info = *endpoint; - - return info; -} - -void CAAdapterFreeEndpoint(CAEndpoint_t *remoteEndpoint) -{ - OICFree(remoteEndpoint); -} CAResult_t CAParseIPv4AddressInternal(const char *ipAddrStr, uint8_t *ipAddr, size_t ipAddrLen, uint16_t *port) diff --git a/resource/csdk/connectivity/src/bt_edr_adapter/android/caedrclient.c b/resource/csdk/connectivity/src/bt_edr_adapter/android/caedrclient.c index 1ffa8ef..0a58c91 100644 --- a/resource/csdk/connectivity/src/bt_edr_adapter/android/caedrclient.c +++ b/resource/csdk/connectivity/src/bt_edr_adapter/android/caedrclient.c @@ -32,6 +32,7 @@ #include "camutex.h" #include "uarraylist.h" #include "caadapterutils.h" +#include "caremotehandler.h" //#define DEBUG_MODE #define TAG PCF("CA_EDR_CLIENT") @@ -157,8 +158,8 @@ CAResult_t CAEDRGetInterfaceInformation(CAEndpoint_t **info) } // Create local endpoint using util function - CAEndpoint_t *endpoint = CAAdapterCreateEndpoint(CA_DEFAULT_FLAGS, - CA_ADAPTER_RFCOMM_BTEDR, macAddress, 0); + CAEndpoint_t *endpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_RFCOMM_BTEDR, + macAddress, 0); if (NULL == endpoint) { OIC_LOG(ERROR, TAG, "Failed to create Local Endpoint!"); @@ -172,14 +173,14 @@ CAResult_t CAEDRGetInterfaceInformation(CAEndpoint_t **info) { OIC_LOG(ERROR, TAG, "Invalid input.."); OICFree(macAddress); - CAAdapterFreeEndpoint(endpoint); + CAFreeEndpoint(endpoint); return CA_MEMORY_ALLOC_FAILED; } *netInfo = *endpoint; *info = netInfo; OICFree(macAddress); - CAAdapterFreeEndpoint(endpoint); + CAFreeEndpoint(endpoint); OIC_LOG(DEBUG, TAG, "OUT - CAEDRGetInterfaceInformation"); return CA_STATUS_OK; diff --git a/resource/csdk/connectivity/src/bt_edr_adapter/caedradapter.c b/resource/csdk/connectivity/src/bt_edr_adapter/caedradapter.c index 678af30..030a83d 100644 --- a/resource/csdk/connectivity/src/bt_edr_adapter/caedradapter.c +++ b/resource/csdk/connectivity/src/bt_edr_adapter/caedradapter.c @@ -32,6 +32,7 @@ #include "cafragmentation.h" #include "caqueueingthread.h" #include "oic_malloc.h" +#include "caremotehandler.h" /** * @var EDR_ADAPTER_TAG @@ -404,7 +405,7 @@ void CATerminateEDR() CAEDRServerTerminate(); // Free LocalConnectivity information - CAAdapterFreeEndpoint(g_localConnectivity); + CAFreeEndpoint(g_localConnectivity); g_localConnectivity = NULL; OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT"); @@ -719,9 +720,9 @@ void CAAdapterDataReceiverHandler(void *context) } const char *remoteAddress = message->remoteEndpoint->addr; - uint16_t port = message->remoteEndpoint->port; - remoteEndpoint = CAAdapterCreateEndpoint(0, CA_ADAPTER_RFCOMM_BTEDR, remoteAddress, port); + remoteEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_RFCOMM_BTEDR, + remoteAddress, 0); memcpy(defragData + recvDataLen, message->data + CA_HEADER_LENGTH, message->dataLen - CA_HEADER_LENGTH); @@ -802,10 +803,9 @@ void CAAdapterRecvData(const char *remoteAddress, const void *data, uint32_t dat VERIFY_NON_NULL_VOID(sentLength, EDR_ADAPTER_TAG, "Sent data length holder is null"); // Create remote endpoint - CAEndpoint_t *remoteEndpoint = CAAdapterCreateEndpoint(0, - CA_ADAPTER_RFCOMM_BTEDR, - remoteAddress, - 0); + CAEndpoint_t *remoteEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, + CA_ADAPTER_RFCOMM_BTEDR, + remoteAddress, 0); if (NULL == remoteEndpoint) { OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Failed to create remote endpoint !"); @@ -818,7 +818,7 @@ void CAAdapterRecvData(const char *remoteAddress, const void *data, uint32_t dat *sentLength = dataLength; // Free remote endpoint - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT"); } @@ -865,7 +865,9 @@ CAResult_t CAAdapterSendData(const char *remoteAddress, const char *serviceUUID, VERIFY_NON_NULL(sentLength, EDR_ADAPTER_TAG, "Sent data length holder is null"); // Create remote endpoint - CAEndpoint_t *remoteEndpoint = CAAdapterCreateEndpoint(0, CA_ADAPTER_RFCOMM_BTEDR, remoteAddress, 0); + CAEndpoint_t *remoteEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, + CA_ADAPTER_RFCOMM_BTEDR, + remoteAddress, 0); if (NULL == remoteEndpoint) { OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Failed to create remote endpoint !"); @@ -878,7 +880,7 @@ CAResult_t CAAdapterSendData(const char *remoteAddress, const char *serviceUUID, *sentLength = dataLength; // Free remote endpoint - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT - CAAdapterSendData"); return CA_STATUS_OK; @@ -985,7 +987,7 @@ CAEDRNetworkEvent *CAEDRCreateNetworkEvent(CAEndpoint_t *connectivity, } // Create duplicate of Local connectivity - event->info = CAAdapterCloneEndpoint(connectivity); + event->info = CACloneEndpoint(connectivity); event->status = status; return event; } @@ -994,7 +996,7 @@ void CAEDRFreeNetworkEvent(CAEDRNetworkEvent *event) { if (event) { - CAAdapterFreeEndpoint(event->info); + CAFreeEndpoint(event->info); OICFree(event); } } @@ -1009,7 +1011,7 @@ CAEDRData *CACreateEDRData(const CAEndpoint_t *remoteEndpoint, return NULL; } - edrData->remoteEndpoint = CAAdapterCloneEndpoint(remoteEndpoint); + edrData->remoteEndpoint = CACloneEndpoint(remoteEndpoint); edrData->data = OICMalloc(dataLength); if (NULL == edrData->data) @@ -1028,7 +1030,7 @@ void CAFreeEDRData(CAEDRData *edrData) { VERIFY_NON_NULL_VOID(edrData, EDR_ADAPTER_TAG, "edrData is NULL"); - CAAdapterFreeEndpoint(edrData->remoteEndpoint); + CAFreeEndpoint(edrData->remoteEndpoint); OICFree(edrData->data); OICFree(edrData); } diff --git a/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrnwmonitor.c b/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrnwmonitor.c index f123852..fea95e2 100644 --- a/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrnwmonitor.c +++ b/resource/csdk/connectivity/src/bt_edr_adapter/tizen/caedrnwmonitor.c @@ -32,6 +32,7 @@ #include "caedrutils.h" #include "caadapterutils.h" #include "caqueueingthread.h" +#include "caremotehandler.h" /** * @var g_edrNetworkChangeCallback @@ -129,7 +130,7 @@ CAResult_t CAEDRGetInterfaceInformation(CALocalConnectivity_t **info) } // Create network info - *info = CAAdapterCreateLocalEndpoint(CA_EDR, localAddress); + *info = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_RFCOMM_BTEDR, localAddress, 0); if (NULL == *info) { OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Failed to create LocalConnectivity instance!"); diff --git a/resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c b/resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c index 877814b..8afb907 100644 --- a/resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c +++ b/resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c @@ -30,6 +30,7 @@ #include "cafragmentation.h" #include "oic_malloc.h" #include "oic_string.h" +#include "caremotehandler.h" /** * @var CALEADAPTER_TAG @@ -1150,7 +1151,8 @@ void CABLEServerDataReceiverHandler(void *threadData) const char *remoteAddress = bleData->remoteEndpoint->addr; - remoteEndpoint = CAAdapterCreateEndpoint(0, CA_ADAPTER_GATT_BTLE, remoteAddress, 0); + remoteEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_GATT_BTLE, + remoteAddress, 0); memcpy(defragData + recvDataLen, bleData->data + CA_HEADER_LENGTH, bleData->dataLen - CA_HEADER_LENGTH); @@ -1191,7 +1193,7 @@ void CABLEServerDataReceiverHandler(void *threadData) totalDataLen = 0; isHeaderAvailable = false; OICFree(defragData); - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); ca_mutex_unlock(g_bleServerReceiveDataMutex); return; } @@ -1245,7 +1247,8 @@ void CABLEClientDataReceiverHandler(void *threadData) remoteAddress = bleData->remoteEndpoint->addr; - remoteEndpoint = CAAdapterCreateEndpoint(0, CA_ADAPTER_GATT_BTLE, remoteAddress, 0); + remoteEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_GATT_BTLE, + remoteAddress, 0); memcpy(defragData, bleData->data + CA_HEADER_LENGTH, bleData->dataLen - CA_HEADER_LENGTH); @@ -1283,7 +1286,7 @@ void CABLEClientDataReceiverHandler(void *threadData) { OIC_LOG(DEBUG, CALEADAPTER_TAG, "GATTClient is terminating. Cleaning up"); OICFree(defragData); - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); ca_mutex_unlock(g_bleClientReceiveDataMutex); return; } @@ -1634,7 +1637,7 @@ CALEData_t *CACreateBLEData(const CAEndpoint_t *remoteEndpoint, const void *data return NULL; } - bleData->remoteEndpoint = CAAdapterCloneEndpoint(remoteEndpoint); + bleData->remoteEndpoint = CACloneEndpoint(remoteEndpoint); bleData->data = (void *)OICCalloc(dataLength + 1, 1); if (NULL == bleData->data) { @@ -1652,7 +1655,7 @@ void CAFreeBLEData(CALEData_t *bleData) { VERIFY_NON_NULL_VOID(bleData, NULL, "Param bleData is NULL"); - CAAdapterFreeEndpoint(bleData->remoteEndpoint); + CAFreeEndpoint(bleData->remoteEndpoint); OICFree(bleData->data); OICFree(bleData); } @@ -1749,7 +1752,9 @@ CAResult_t CABLEServerReceivedData(const char *remoteAddress, const char *servic CA_STATUS_FAILED); //Add message to data queue - CAEndpoint_t *remoteEndpoint = CAAdapterCreateEndpoint(0, CA_ADAPTER_GATT_BTLE, remoteAddress, 0); + CAEndpoint_t *remoteEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, + CA_ADAPTER_GATT_BTLE, + remoteAddress, 0); if (NULL == remoteEndpoint) { OIC_LOG(ERROR, CALEADAPTER_TAG, "Failed to create remote endpoint !"); @@ -1763,11 +1768,11 @@ CAResult_t CABLEServerReceivedData(const char *remoteAddress, const char *servic if (!bleData) { OIC_LOG(ERROR, CALEADAPTER_TAG, "Failed to create bledata!"); - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); return CA_MEMORY_ALLOC_FAILED; } - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); // Add message to send queue CAQueueingThreadAddData(g_bleServerReceiverQueue, bleData, sizeof(CALEData_t)); @@ -1790,7 +1795,9 @@ CAResult_t CABLEClientReceivedData(const char *remoteAddress, const char *servic CA_STATUS_FAILED); //Add message to data queue - CAEndpoint_t *remoteEndpoint = CAAdapterCreateEndpoint(0, CA_ADAPTER_GATT_BTLE, remoteAddress, 0); + CAEndpoint_t *remoteEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, + CA_ADAPTER_GATT_BTLE, + remoteAddress, 0); if (NULL == remoteEndpoint) { OIC_LOG(ERROR, CALEADAPTER_TAG, "Failed to create remote endpoint !"); @@ -1804,11 +1811,11 @@ CAResult_t CABLEClientReceivedData(const char *remoteAddress, const char *servic if (!bleData) { OIC_LOG(ERROR, CALEADAPTER_TAG, "Failed to create bledata!"); - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); return CA_MEMORY_ALLOC_FAILED; } - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); // Add message to send queue CAQueueingThreadAddData(g_bleClientReceiverQueue, bleData, sizeof(CALEData_t)); diff --git a/resource/csdk/connectivity/src/bt_le_adapter/caleadapter_singlethread.c b/resource/csdk/connectivity/src/bt_le_adapter/caleadapter_singlethread.c index de6d2c8..e5d5974 100644 --- a/resource/csdk/connectivity/src/bt_le_adapter/caleadapter_singlethread.c +++ b/resource/csdk/connectivity/src/bt_le_adapter/caleadapter_singlethread.c @@ -24,6 +24,7 @@ #include "logger.h" #include "caadapterutils.h" #include "cafragmentation.h" +#include "caremotehandler.h" #define TAG "LAD" @@ -212,7 +213,7 @@ CAResult_t CAGetLEInterfaceInformation(CAEndpoint_t **info, uint32_t *size) /** * Create local endpoint using util function */ - (*info) = CAAdapterCreateLocalEndpoint(CA_ADAPTER_GATT_BTLE, leAddress); + (*info) = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_RFCOMM_BTEDR, leAddress, 0); if (NULL == (*info)) { OIC_LOG(ERROR, TAG, "malloc fail"); @@ -294,8 +295,9 @@ void CANotifyCallback(const void *data, int32_t dataLen, const char *senderAdrs, { /* Cannot get Address as of now */ - CAEndpoint_t *localEndpoint = CAAdapterCreateLocalEndpoint(CA_IPV4, CA_ADAPTER_GATT_BTLE, - senderAdrs, senderPort); + CAEndpoint_t *localEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, + CA_ADAPTER_GATT_BTLE, + senderAdrs, senderPort); g_respCallback(localEndpoint, data, dataLen); } diff --git a/resource/csdk/connectivity/src/caconnectivitymanager.c b/resource/csdk/connectivity/src/caconnectivitymanager.c index fe0285d..f98dce7 100644 --- a/resource/csdk/connectivity/src/caconnectivitymanager.c +++ b/resource/csdk/connectivity/src/caconnectivitymanager.c @@ -129,11 +129,32 @@ CAResult_t CARegisterDTLSCredentialsHandler(CAGetDTLSCredentialsHandler GetDTLSC } #endif //__WITH_DTLS__ +CAResult_t CACreateEndpoint(CATransportFlags_t flags, + CATransportAdapter_t adapter, + const char *addr, + uint16_t port, + CAEndpoint_t **object) +{ + if (!object) + { + OIC_LOG(ERROR, TAG, "Invalid Parameter"); + return CA_STATUS_INVALID_PARAM; + } + + CAEndpoint_t *endpoint = CACreateEndpointObject(flags, adapter, addr, port); + if (!endpoint) + { + return CA_STATUS_FAILED; + } + *object = endpoint; + return CA_STATUS_OK; +} + void CADestroyEndpoint(CAEndpoint_t *rep) { OIC_LOG(DEBUG, TAG, "CADestroyEndpoint"); - CADestroyEndpointInternal(rep); + CAFreeEndpoint(rep); } CAResult_t CAGenerateToken(CAToken_t *token, uint8_t tokenLength) diff --git a/resource/csdk/connectivity/src/caconnectivitymanager_singlethread.c b/resource/csdk/connectivity/src/caconnectivitymanager_singlethread.c index 91ced23..d73e3fe 100644 --- a/resource/csdk/connectivity/src/caconnectivitymanager_singlethread.c +++ b/resource/csdk/connectivity/src/caconnectivitymanager_singlethread.c @@ -108,9 +108,30 @@ void CARegisterHandler(CARequestCallback ReqHandler, CAResponseCallback RespHand OIC_LOG(DEBUG, TAG, "OUT"); } +CAResult_t CACreateEndpoint(CATransportFlags_t flags, + CATransportAdapter_t adapter, + const char *addr, + uint16_t port, + CAEndpoint_t **object) +{ + if (!object) + { + OIC_LOG(ERROR, TAG, "Invalid Parameter"); + return CA_STATUS_INVALID_PARAM; + } + + CAEndpoint_t *endpoint = CACreateEndpointObject(flags, adapter, addr, port); + if (!endpoint) + { + return CA_STATUS_FAILED; + } + *object = endpoint; + return CA_STATUS_OK; +} + void CADestroyEndpoint(CAEndpoint_t *rep) { - CADestroyEndpointInternal(rep); + CAFreeEndpoint(rep); } CAResult_t CAGenerateToken(CAToken_t *token, uint8_t tokenLength) diff --git a/resource/csdk/connectivity/src/camessagehandler.c b/resource/csdk/connectivity/src/camessagehandler.c index 6e5b85c..4699938 100644 --- a/resource/csdk/connectivity/src/camessagehandler.c +++ b/resource/csdk/connectivity/src/camessagehandler.c @@ -117,7 +117,7 @@ static void CATimeoutCallback(const CAEndpoint_t *endpoint, const void *pdu, uin if (NULL == resInfo) { OIC_LOG(ERROR, TAG, "calloc failed"); - CAAdapterFreeEndpoint(ep); + CAFreeEndpoint(ep); return; } @@ -130,7 +130,7 @@ static void CATimeoutCallback(const CAEndpoint_t *endpoint, const void *pdu, uin OIC_LOG(ERROR, TAG, "fail to get Token from retransmission list"); OICFree(resInfo->info.token); OICFree(resInfo); - CAAdapterFreeEndpoint(ep); + CAFreeEndpoint(ep); return; } @@ -138,7 +138,7 @@ static void CATimeoutCallback(const CAEndpoint_t *endpoint, const void *pdu, uin if (NULL == cadata) { OIC_LOG(ERROR, TAG, "memory allocation failed !"); - CAAdapterFreeEndpoint(ep); + CAFreeEndpoint(ep); OICFree(resInfo); return; } @@ -165,7 +165,7 @@ static void CADataDestroyer(void *data, uint32_t size) if (NULL != cadata->remoteEndpoint) { - CADestroyEndpointInternal(cadata->remoteEndpoint); + CAFreeEndpoint(cadata->remoteEndpoint); } if (NULL != cadata->requestInfo) @@ -391,7 +391,7 @@ static void CAReceivedPacketCallback(const CAEndpoint_t *endpoint, void *data, u } cadata->type = SEND_TYPE_UNICAST; - cadata->remoteEndpoint = CAAdapterCloneEndpoint(endpoint); + cadata->remoteEndpoint = CACloneEndpoint(endpoint); cadata->requestInfo = ReqInfo; cadata->responseInfo = NULL; CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t)); @@ -450,7 +450,7 @@ static void CAReceivedPacketCallback(const CAEndpoint_t *endpoint, void *data, u } cadata->type = SEND_TYPE_UNICAST; - cadata->remoteEndpoint = CAAdapterCloneEndpoint(endpoint); + cadata->remoteEndpoint = CACloneEndpoint(endpoint); cadata->requestInfo = NULL; // for retransmission @@ -594,7 +594,7 @@ CAResult_t CADetachRequestMessage(const CAEndpoint_t *object, const CARequestInf // memory error label. memory_error_exit: - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); CADestroyRequestInfoInternal(requestInfo); OICFree(data); @@ -658,7 +658,7 @@ CAResult_t CADetachResponseMessage(const CAEndpoint_t *object, // memory error label. memory_error_exit: - CAAdapterFreeEndpoint(remoteEndpoint); + CAFreeEndpoint(remoteEndpoint); CADestroyResponseInfoInternal(responseInfo); OICFree(data); OIC_LOG(DEBUG, TAG, "OUT"); @@ -897,7 +897,7 @@ void CAErrorHandler(const CAEndpoint_t *endpoint, if (NULL == cadata) { OIC_LOG(ERROR, TAG, "CAReceivedPacketCallback, Memory allocation failed !"); - CADestroyEndpointInternal(rep); + CAFreeEndpoint(rep); OICFree(errorInfo); coap_delete_pdu(pdu); return; diff --git a/resource/csdk/connectivity/src/camessagehandler_singlethread.c b/resource/csdk/connectivity/src/camessagehandler_singlethread.c index c42d252..8a5603b 100644 --- a/resource/csdk/connectivity/src/camessagehandler_singlethread.c +++ b/resource/csdk/connectivity/src/camessagehandler_singlethread.c @@ -75,7 +75,7 @@ static void CATimeoutCallback(const CAEndpoint_t *endpoint, const void *pdu, uin if (NULL == resInfo) { OIC_LOG(ERROR, TAG, "calloc failed"); - CADestroyEndpointInternal(ep); + CAFreeEndpoint(ep); return; } @@ -88,7 +88,7 @@ static void CATimeoutCallback(const CAEndpoint_t *endpoint, const void *pdu, uin g_responseHandler(ep, resInfo); } - CADestroyEndpointInternal(ep); + CAFreeEndpoint(ep); OICFree(resInfo); OIC_LOG(DEBUG, TAG, "OUT"); diff --git a/resource/csdk/connectivity/src/caretransmission.c b/resource/csdk/connectivity/src/caretransmission.c index 37b97fb..9faca71 100644 --- a/resource/csdk/connectivity/src/caretransmission.c +++ b/resource/csdk/connectivity/src/caretransmission.c @@ -174,7 +174,7 @@ static void CACheckRetransmissionList(CARetransmission_t *context) removedData->size); } - CADestroyEndpointInternal(removedData->endpoint); + CAFreeEndpoint(removedData->endpoint); OICFree(removedData->pdu); OICFree(removedData); @@ -541,7 +541,7 @@ CAResult_t CARetransmissionReceivedData(CARetransmission_t *context, OIC_LOG_V(DEBUG, TAG, "remove retransmission CON data!!, message id(%d)", messageId); - CADestroyEndpointInternal(removedData->endpoint); + CAFreeEndpoint(removedData->endpoint); OICFree(removedData->pdu); OICFree(removedData); diff --git a/resource/csdk/connectivity/src/caretransmission_singlethread.c b/resource/csdk/connectivity/src/caretransmission_singlethread.c index 7a05bef..d23ea6f 100644 --- a/resource/csdk/connectivity/src/caretransmission_singlethread.c +++ b/resource/csdk/connectivity/src/caretransmission_singlethread.c @@ -145,7 +145,7 @@ void CACheckRetransmissionList() removedData->size); } - CADestroyEndpointInternal(removedData->endpoint); + CAFreeEndpoint(removedData->endpoint); OICFree(removedData->pdu); OICFree(removedData); @@ -376,7 +376,7 @@ CAResult_t CARetransmissionReceivedData(CARetransmission_t *context, OIC_LOG_V(DEBUG, TAG, "remove RTCON data, msgid=%d", messageId); - CADestroyEndpointInternal(removedData->endpoint); + CAFreeEndpoint(removedData->endpoint); OICFree(removedData->pdu); OICFree(removedData); diff --git a/resource/csdk/connectivity/src/ip_adapter/caipadapter.c b/resource/csdk/connectivity/src/ip_adapter/caipadapter.c index c942302..c89b8ca 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipadapter.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipadapter.c @@ -32,6 +32,7 @@ #endif #include "camutex.h" #include "uarraylist.h" +#include "caremotehandler.h" #include "logger.h" #include "oic_malloc.h" #include "oic_string.h" @@ -185,7 +186,9 @@ void CAIPNotifyNetworkChange(const char *address, uint16_t port, CANetworkStatus VERIFY_NON_NULL_VOID(address, IP_ADAPTER_TAG, "address is NULL"); - CAEndpoint_t *localEndpoint = CAAdapterCreateEndpoint(0, CA_ADAPTER_IP, address, port); + CAEndpoint_t *localEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, + CA_ADAPTER_IP, + address, port); if (!localEndpoint) { OIC_LOG(ERROR, IP_ADAPTER_TAG, "localEndpoint creation failed!"); @@ -201,7 +204,7 @@ void CAIPNotifyNetworkChange(const char *address, uint16_t port, CANetworkStatus OIC_LOG(ERROR, IP_ADAPTER_TAG, "g_networkChangeCallback is NULL"); } - CAAdapterFreeEndpoint(localEndpoint); + CAFreeEndpoint(localEndpoint); OIC_LOG(DEBUG, IP_ADAPTER_TAG, "OUT"); } @@ -823,7 +826,7 @@ CAIPData *CACreateIPData(const CAEndpoint_t *remoteEndpoint, const void *data, return NULL; } - ipData->remoteEndpoint = CAAdapterCloneEndpoint(remoteEndpoint); + ipData->remoteEndpoint = CACloneEndpoint(remoteEndpoint); ipData->data = (void *) OICMalloc(dataLength); if (!ipData->data) { @@ -844,7 +847,7 @@ void CAFreeIPData(CAIPData *ipData) { VERIFY_NON_NULL_VOID(ipData, IP_ADAPTER_TAG, "ipData is NULL"); - CAAdapterFreeEndpoint(ipData->remoteEndpoint); + CAFreeEndpoint(ipData->remoteEndpoint); OICFree(ipData->data); OICFree(ipData); } diff --git a/resource/csdk/connectivity/src/ip_adapter/caipadapter_singlethread.c b/resource/csdk/connectivity/src/ip_adapter/caipadapter_singlethread.c index e7b2d16..7e00998 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipadapter_singlethread.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipadapter_singlethread.c @@ -27,6 +27,7 @@ #include "caadapterutils.h" #include "logger.h" #include "oic_malloc.h" +#include "caremotehandler.h" #include "caipinterface_singlethread.h" /** @@ -111,8 +112,8 @@ static CAResult_t CAIPStopServers(); void CAIPNotifyNetworkChange(const char *address, uint16_t port, CANetworkStatus_t status) { - CAEndpoint_t *localEndpoint = CAAdapterCreateLocalEndpoint(CA_IPV4, CA_ADAPTER_IP, address, - port); + CAEndpoint_t *localEndpoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, + address, port); if (!localEndpoint) { OIC_LOG(ERROR, TAG, "Out of memory!"); @@ -125,7 +126,7 @@ void CAIPNotifyNetworkChange(const char *address, uint16_t port, CANetworkStatus g_networkChangeCallback(localEndpoint, status); } - CAAdapterFreeEndpoint(localEndpoint); + CAFreeEndpoint(localEndpoint); } void CAIPConnectionStateCB(const char *ipAddr, @@ -212,8 +213,8 @@ void CAIPPacketReceivedCB(const char *ipAddress, uint16_t port, OIC_LOG_V(DEBUG, TAG, "data:%s", data); /* CA is freeing this memory */ - CAEndpoint_t *endPoint = CAAdapterCreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, ipAddress, - port); + CAEndpoint_t *endPoint = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, + ipAddress, port); if (NULL == endPoint) { OIC_LOG(ERROR, TAG, "Out of memory!"); @@ -224,7 +225,7 @@ void CAIPPacketReceivedCB(const char *ipAddress, uint16_t port, { g_networkPacketCallback(endPoint, data, dataLength); } - CAAdapterFreeEndpoint(endPoint); + CAFreeEndpoint(endPoint); OIC_LOG(DEBUG, TAG, "OUT"); } @@ -407,7 +408,8 @@ CAResult_t CAGetIPInterfaceInformation(CAEndpoint_t **info, uint32_t *size) } // Create local endpoint using util function - (*info) = CAAdapterCreateLocalEndpoint(CA_IPV4, CA_ADAPTER_IP, ipAddress); + (*info) = CACreateEndpointObject(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, ipAddress, + g_unicastServerport); if (NULL == (*info)) { OIC_LOG(ERROR, TAG, "malloc fail"); @@ -416,7 +418,6 @@ CAResult_t CAGetIPInterfaceInformation(CAEndpoint_t **info, uint32_t *size) return CA_MEMORY_ALLOC_FAILED; } - (*info)->port = g_unicastServerport; (*size) = 1; OICFree(ipAddress); -- 2.7.4