From: Erich Keane Date: Fri, 29 May 2015 20:08:57 +0000 (-0700) Subject: Revert "Adding error handling in IP Adapter" X-Git-Tag: 1.2.0+RC1~1650 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4cd72f3c60aae84cc4143f36612ae2152036adcc;p=platform%2Fupstream%2Fiotivity.git Revert "Adding error handling in IP Adapter" This reverts commit c6f597bdc2eaf385c50be824cfb8845d7ca72e46. Change-Id: Ia0d8b3a9b604206bb9027e170ba3fda6613aa0b3 Signed-off-by: Erich Keane Reviewed-on: https://gerrit.iotivity.org/gerrit/1146 Reviewed-by: Joseph Morrow Tested-by: jenkins-iotivity --- diff --git a/resource/csdk/connectivity/inc/caipadapter.h b/resource/csdk/connectivity/inc/caipadapter.h index e425da3..fc1e697 100644 --- a/resource/csdk/connectivity/inc/caipadapter.h +++ b/resource/csdk/connectivity/inc/caipadapter.h @@ -39,18 +39,16 @@ extern "C" * @param registerCallback [IN] Callback to register IP interfaces to Connectivity * Abstraction Layer * @param networkPacketCallback [IN] Callback to notify request and response messages from server(s) - * started at Connectivity Abstraction Layer + * started at Connectivity Abstraction Layer. * @param netCallback [IN] Callback to notify the network additions to Connectivity - * Abstraction Layer - * @param errorCallback [IN] Callback to notify the network errors to Connectivity - * Abstraction Layer + * Abstraction Layer. * @param handle [IN] Threadpool Handle * @return #CA_STATUS_OK or Appropriate error code */ -CAResult_t CAInitializeIP(CARegisterConnectivityCallback registerCallback, - CANetworkPacketReceivedCallback networkPacketCallback, - CANetworkChangeCallback netCallback, - CAErrorHandleCallback errorCallback, ca_thread_pool_t handle); + CAResult_t CAInitializeIP(CARegisterConnectivityCallback registerCallback, + CANetworkPacketReceivedCallback networkPacketCallback, + CANetworkChangeCallback netCallback, ca_thread_pool_t handle); + /** * @brief Start IP Interface adapter. diff --git a/resource/csdk/connectivity/inc/caipinterface.h b/resource/csdk/connectivity/inc/caipinterface.h index 28b69dc..092a51e 100644 --- a/resource/csdk/connectivity/inc/caipinterface.h +++ b/resource/csdk/connectivity/inc/caipinterface.h @@ -65,22 +65,6 @@ typedef void (*CAIPPacketReceivedCallback)(const char *ipAddress, uint16_t port, bool isSecured); /** - * @brief Callback to notify error in the IP adapter - * - * @param ipAddress [IN] IP address of the device. - * @param port [IN] Port number - * @param data [IN] Data sent/received - * @param dataLength [IN] Length of data in bytes. - * @param isSecured [IN] flag to indicate if data is secured - * @param result [IN] result of request from R.I - * @return NONE - * @pre Callback must be registered using CAIPSetPacketReceiveCallback() - */ -typedef void (*CAIPErrorHandleCallback)(const char *ipAddress, uint16_t port, - const void *data, uint32_t dataLength, - bool isSecured, CAResult_t result); - -/** * @brief Callback to be notified when exception occures on multicast/unicast server. * @param type [IN] Type of server(#CAAdapterServerType_t) * @return NONE diff --git a/resource/csdk/connectivity/src/cainterfacecontroller.c b/resource/csdk/connectivity/src/cainterfacecontroller.c index 2f5b5bc..2abc0a8 100644 --- a/resource/csdk/connectivity/src/cainterfacecontroller.c +++ b/resource/csdk/connectivity/src/cainterfacecontroller.c @@ -138,8 +138,19 @@ void CAInitializeAdapters(ca_thread_pool_t handle) // Initialize adapters and register callback. #ifdef IP_ADAPTER CAInitializeIP(CARegisterCallback, CAReceivedPacketCallback, CANetworkChangedCallback, - CAAdapterErrorHandleCallback, handle); + handle); #endif /* IP_ADAPTER */ + +#ifdef EDR_ADAPTER + CAInitializeEDR(CARegisterCallback, CAReceivedPacketCallback, CANetworkChangedCallback, + handle); +#endif /* EDR_ADAPTER */ + +#ifdef LE_ADAPTER + CAInitializeLE(CARegisterCallback, CAReceivedPacketCallback, CANetworkChangedCallback, + handle); +#endif /* LE_ADAPTER */ + } void CASetPacketReceivedCallback(CANetworkPacketReceivedCallback callback) diff --git a/resource/csdk/connectivity/src/camessagehandler.c b/resource/csdk/connectivity/src/camessagehandler.c index e918b1d..635289c 100644 --- a/resource/csdk/connectivity/src/camessagehandler.c +++ b/resource/csdk/connectivity/src/camessagehandler.c @@ -825,8 +825,6 @@ CAResult_t CAInitializeMessageHandler() CASetNetworkChangeCallback(CANetworkChangedCallback); - CASetErrorHandleCallback(CAErrorHandler); - // create thread pool CAResult_t res = ca_thread_pool_init(MAX_THREAD_POOL_SIZE, &g_threadPoolHandle); diff --git a/resource/csdk/connectivity/src/ip_adapter/caipadapter.c b/resource/csdk/connectivity/src/ip_adapter/caipadapter.c index 42ae6cf..bd9af23 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipadapter.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipadapter.c @@ -89,12 +89,6 @@ static CANetworkPacketReceivedCallback g_networkPacketCallback = NULL; static CANetworkChangeCallback g_networkChangeCallback = NULL; /** - * @var g_errorCallback - * @brief error Callback to CA adapter - */ -static CAErrorHandleCallback g_errorCallback = NULL; - -/** * @var g_sendQueueHandle * @brief Queue handle for Send Data */ @@ -111,18 +105,15 @@ static CAResult_t CAIPInitializeQueueHandles(); static void CAIPDeinitializeQueueHandles(); static void CAIPNotifyNetworkChange(const char *address, uint16_t port, - CANetworkStatus_t status); + CANetworkStatus_t status); static void CAIPConnectionStateCB(const char *ipAddress, CANetworkStatus_t status); static void CAIPPacketReceivedCB(const char *ipAddress, uint16_t port, const void *data, - uint32_t dataLength, bool isSecured); -static void CAIPErrorHandler(const char *ipAddress, uint16_t port, const void *data, - uint32_t dataLength, bool isSecured, CAResult_t result); - + uint32_t dataLength, bool isSecured); #ifdef __WITH_DTLS__ static uint32_t CAIPPacketSendCB(const char *ipAddress, uint16_t port, - const void *data, uint32_t dataLength); + const void *data, uint32_t dataLength); #endif static CAResult_t CAIPStopServers(); @@ -130,7 +121,7 @@ static CAResult_t CAIPStopServers(); static void CAIPSendDataThread(void *threadData); static CAIPData *CACreateIPData(const CARemoteEndpoint_t *remoteEndpoint, - const void *data, uint32_t dataLength); + const void *data, uint32_t dataLength); void CAFreeIPData(CAIPData *ipData); static void CADataDestroyer(void *data, uint32_t size); @@ -277,20 +268,6 @@ uint32_t CAIPPacketSendCB(const char *ipAddress, uint16_t port, uint32_t sentLength = CAIPSendData(ipAddress, port, data, dataLength, false, true); - if (sentLength == 0) - { - CARemoteEndpoint_t *endPoint = CAAdapterCreateRemoteEndpoint(CA_IPV4, ipAddress, NULL); - if (!endPoint) - { - OIC_LOG(ERROR, IP_ADAPTER_TAG, "EndPoint creation failed!"); - return 0; - } - - g_errorCallback(endPoint, data, dataLength, CA_SEND_FAILED); - - CAAdapterFreeRemoteEndpoint(endPoint); - } - OIC_LOG_V(DEBUG, IP_ADAPTER_TAG, "Successfully sent %d of encrypted data!", sentLength); OIC_LOG(DEBUG, IP_ADAPTER_TAG, "OUT"); @@ -311,7 +288,7 @@ void CAIPPacketReceivedCB(const char *ipAddress, uint16_t port, const void *data OIC_LOG_V(DEBUG, IP_ADAPTER_TAG, "Address: %s, port:%d", ipAddress, port); // CA is freeing this memory - CARemoteEndpoint_t *endPoint = CAAdapterCreateRemoteEndpoint(CA_IPV4, ipAddress, NULL); + CARemoteEndpoint_t *endPoint = CAAdapterCreateRemoteEndpoint(CA_IPV4, ipAddress, NULL ); if (!endPoint) { OIC_LOG(ERROR, IP_ADAPTER_TAG, "EndPoint creation failed!"); @@ -320,7 +297,7 @@ void CAIPPacketReceivedCB(const char *ipAddress, uint16_t port, const void *data endPoint->addressInfo.IP.port = port; endPoint->isSecured = isSecured; - void *buf = (void*)OICMalloc(sizeof(char) * dataLength); + void *buf = OICCalloc(dataLength + 1, sizeof(char)); if (!buf) { OIC_LOG(ERROR, IP_ADAPTER_TAG, "Memory Allocation failed!"); @@ -341,54 +318,9 @@ void CAIPPacketReceivedCB(const char *ipAddress, uint16_t port, const void *data OIC_LOG(DEBUG, IP_ADAPTER_TAG, "OUT"); } -void CAIPErrorHandler (const char *ipAddress, uint16_t port, const void *data, - uint32_t dataLength, bool isSecured, CAResult_t result) -{ - OIC_LOG(DEBUG, IP_ADAPTER_TAG, "IN"); - - VERIFY_NON_NULL_VOID(ipAddress, IP_ADAPTER_TAG, "ipAddress is NULL"); - - VERIFY_NON_NULL_VOID(data, IP_ADAPTER_TAG, "data is NULL"); - - OIC_LOG_V(DEBUG, IP_ADAPTER_TAG, "Address: %s, port:%d", ipAddress, port); - - // CA is freeing this memory - CARemoteEndpoint_t *endPoint = CAAdapterCreateRemoteEndpoint(CA_IPV4, ipAddress, NULL ); - if (!endPoint) - { - OIC_LOG(ERROR, IP_ADAPTER_TAG, "EndPoint creation failed!"); - return; - } - endPoint->addressInfo.IP.port = port; - endPoint->isSecured = isSecured; - - void *buf = (void*)OICMalloc(sizeof(char) * dataLength); - if (!buf) - { - OIC_LOG(ERROR, IP_ADAPTER_TAG, "Memory Allocation failed!"); - CAAdapterFreeRemoteEndpoint(endPoint); - return; - } - memcpy(buf, data, dataLength); - if (g_errorCallback) - { - g_errorCallback(endPoint, buf, dataLength, result); - } - else - { - OICFree(buf); - CAAdapterFreeRemoteEndpoint(endPoint); - } - - OIC_LOG(DEBUG, IP_ADAPTER_TAG, "OUT"); - - return; -} - CAResult_t CAInitializeIP(CARegisterConnectivityCallback registerCallback, - CANetworkPacketReceivedCallback networkPacketCallback, - CANetworkChangeCallback netCallback, - CAErrorHandleCallback errorCallback, ca_thread_pool_t handle) + CANetworkPacketReceivedCallback networkPacketCallback, + CANetworkChangeCallback netCallback, ca_thread_pool_t handle) { OIC_LOG(DEBUG, IP_ADAPTER_TAG, "IN"); VERIFY_NON_NULL(registerCallback, IP_ADAPTER_TAG, "registerCallback"); @@ -399,7 +331,6 @@ CAResult_t CAInitializeIP(CARegisterConnectivityCallback registerCallback, g_threadPool = handle; g_networkChangeCallback = netCallback; g_networkPacketCallback = networkPacketCallback; - g_errorCallback = errorCallback; CAResult_t ret = CAIPInitializeNetworkMonitor(g_threadPool); if (CA_STATUS_OK != ret) @@ -418,7 +349,6 @@ CAResult_t CAInitializeIP(CARegisterConnectivityCallback registerCallback, } CAIPSetPacketReceiveCallback(CAIPPacketReceivedCB); - CAIPSetErrorHandleCallback(CAIPErrorHandler); #ifdef __WITH_DTLS__ CAAdapterNetDtlsInit(); @@ -813,13 +743,8 @@ void CAIPSendDataThread(void *threadData) if (!ipData->remoteEndpoint->isSecured) { OIC_LOG(DEBUG, IP_ADAPTER_TAG, "Send Unicast Data is called"); - uint32_t res = CAIPSendData(address, port, ipData->data, ipData->dataLen, false, + CAIPSendData(address, port, ipData->data, ipData->dataLen, false, ipData->remoteEndpoint->isSecured); - if (res == 0) - { - g_errorCallback(ipData->remoteEndpoint, ipData->data, ipData->dataLen, - CA_SEND_FAILED); - } } else { @@ -837,25 +762,16 @@ void CAIPSendDataThread(void *threadData) "CAAdapterNetDtlsEncrypt returned with cache[%d]", cacheFlag); } #else - uint32_t res = CAIPSendData(address, port, ipData->data, ipData->dataLen, false, + CAIPSendData(address, port, ipData->data, ipData->dataLen, false, ipData->remoteEndpoint->isSecured); - if (res == 0) - { - g_errorCallback(ipData->remoteEndpoint, ipData->data, ipData->dataLen, CA_SEND_FAILED); - } - #endif } else { //Processing for sending multicast OIC_LOG(DEBUG, IP_ADAPTER_TAG, "Send Multicast Data is called"); - uint32_t res = CAIPSendData(CA_MULTICAST_IP, CA_MCAST_PORT, ipData->data, + CAIPSendData(CA_MULTICAST_IP, CA_MCAST_PORT, ipData->data, ipData->dataLen, true, false); - if (res == 0) - { - g_errorCallback(ipData->remoteEndpoint, ipData->data, ipData->dataLen, CA_SEND_FAILED); - } } OIC_LOG(DEBUG, IP_ADAPTER_TAG, "OUT"); diff --git a/resource/csdk/connectivity/src/ip_adapter/caipclient.c b/resource/csdk/connectivity/src/ip_adapter/caipclient.c index 70b7843..2f9cfd0 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipclient.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipclient.c @@ -133,7 +133,7 @@ uint32_t CAIPSendData(const char *remoteAddress, uint16_t remotePort, const void { OIC_LOG(ERROR, IP_CLIENT_TAG, "Invalid Socket Fd"); CAClearServerInfoList(tempServerInfoList); - return 0; + return len; } OIC_LOG_V(DEBUG, IP_CLIENT_TAG, "IP unicast SendData sockFd %d", sockFd); diff --git a/resource/csdk/connectivity/src/ip_adapter/caipserver.c b/resource/csdk/connectivity/src/ip_adapter/caipserver.c index c2e89bf..38f164c 100644 --- a/resource/csdk/connectivity/src/ip_adapter/caipserver.c +++ b/resource/csdk/connectivity/src/ip_adapter/caipserver.c @@ -76,7 +76,6 @@ typedef struct ca_thread_pool_t threadPool; CAIPPacketReceivedCallback packetReceivedCallback; CAIPExceptionCallback exceptionCallback; - CAIPErrorHandleCallback IPErrorCallback; } CAAdapterIPServerContext_t; /** @@ -92,10 +91,10 @@ static u_arraylist_t *g_serverInfoList = NULL; static ca_mutex g_mutexServerInfoList = NULL; /** - * @var g_adapterIPServerContext + * @var g_adapterEthServerContext * @brief Mutex to synchronize ethenet adapter context. */ -static CAAdapterIPServerContext_t *g_adapterIPServerContext = NULL; +static CAAdapterIPServerContext_t *g_adapterEthServerContext = NULL; /** * @var g_mutexAdapterServerContext @@ -224,10 +223,10 @@ static void CAReceiveHandler(void *data) OIC_LOG_V(ERROR, IP_SERVER_TAG, "Server socket shutdown sock fd[%d]", sd); ca_mutex_lock(g_mutexAdapterServerContext); // Notify upper layer this exception - if (g_adapterIPServerContext->exceptionCallback) + if (g_adapterEthServerContext->exceptionCallback) { // need to make proper exception callback. - //g_adapterIPServerContext->exceptionCallback(ctx->type); + //g_adapterEthServerContext->exceptionCallback(ctx->type); } ca_mutex_unlock(g_mutexAdapterServerContext); } @@ -276,11 +275,11 @@ static void CAReceiveHandler(void *data) { ca_mutex_lock(g_mutexAdapterServerContext); - if (g_adapterIPServerContext->packetReceivedCallback) + if (g_adapterEthServerContext->packetReceivedCallback) { - g_adapterIPServerContext->packetReceivedCallback(srcIPAddress, srcPort, - recvBuffer, recvLen, - false); + g_adapterEthServerContext->packetReceivedCallback(srcIPAddress, srcPort, + recvBuffer, recvLen, + false); } ca_mutex_unlock(g_mutexAdapterServerContext); @@ -435,9 +434,9 @@ static CAResult_t CAIPStartPacketReceiverHandler() ca_mutex_lock(g_mutexAdapterServerContext); - if (!g_adapterIPServerContext) + if (!g_adapterEthServerContext) { - OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterIPServerContext NULL"); + OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterEthServerContext NULL"); ca_mutex_unlock(g_mutexAdapterServerContext); return CA_STATUS_FAILED; } @@ -445,7 +444,7 @@ static CAResult_t CAIPStartPacketReceiverHandler() if (1 == listLength) //Its first time. { g_packetHandlerStopFlag = false; - if (CA_STATUS_OK != ca_thread_pool_add_task(g_adapterIPServerContext->threadPool, + if (CA_STATUS_OK != ca_thread_pool_add_task(g_adapterEthServerContext->threadPool, CAReceiveHandler, NULL )) { OIC_LOG(ERROR, IP_SERVER_TAG, "thread_pool_add_task failed!"); @@ -523,17 +522,17 @@ CAResult_t CAIPInitializeServer(const ca_thread_pool_t threadPool) } ca_mutex_lock(g_mutexAdapterServerContext); - g_adapterIPServerContext = (CAAdapterIPServerContext_t *) OICCalloc(1, + g_adapterEthServerContext = (CAAdapterIPServerContext_t *) OICCalloc(1, sizeof(CAAdapterIPServerContext_t)); - if (!g_adapterIPServerContext) + if (!g_adapterEthServerContext) { OIC_LOG(ERROR, IP_SERVER_TAG, "Malloc failed"); ca_mutex_unlock(g_mutexAdapterServerContext); return CA_MEMORY_ALLOC_FAILED; } - g_adapterIPServerContext->threadPool = threadPool; + g_adapterEthServerContext->threadPool = threadPool; ca_mutex_unlock(g_mutexAdapterServerContext); @@ -555,15 +554,15 @@ void CAIPTerminateServer() { OIC_LOG(DEBUG, IP_SERVER_TAG, "IN"); ca_mutex_lock(g_mutexAdapterServerContext); - if (!g_adapterIPServerContext) + if (!g_adapterEthServerContext) { - OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterIPServerContext NULL"); + OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterEthServerContext NULL"); ca_mutex_unlock(g_mutexAdapterServerContext); return; } - OICFree(g_adapterIPServerContext); - g_adapterIPServerContext = NULL; + OICFree(g_adapterEthServerContext); + g_adapterEthServerContext = NULL; ca_mutex_unlock(g_mutexAdapterServerContext); @@ -954,32 +953,13 @@ void CAIPSetPacketReceiveCallback(CAIPPacketReceivedCallback callback) ca_mutex_lock(g_mutexAdapterServerContext); - if (!g_adapterIPServerContext) + if (!g_adapterEthServerContext) { - OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterIPServerContext NULL"); + OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterEthServerContext NULL"); ca_mutex_unlock(g_mutexAdapterServerContext); return; } - g_adapterIPServerContext->packetReceivedCallback = callback; - - ca_mutex_unlock(g_mutexAdapterServerContext); - - OIC_LOG(DEBUG, IP_SERVER_TAG, "OUT"); -} - -void CAIPSetErrorHandleCallback(CAIPErrorHandleCallback ipErrorCallback) -{ - OIC_LOG(DEBUG, IP_SERVER_TAG, "IN"); - - ca_mutex_lock(g_mutexAdapterServerContext); - - if (!g_adapterIPServerContext) - { - OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterIPServerContext NULL"); - ca_mutex_unlock(g_mutexAdapterServerContext); - return; - } - g_adapterIPServerContext->IPErrorCallback = ipErrorCallback; + g_adapterEthServerContext->packetReceivedCallback = callback; ca_mutex_unlock(g_mutexAdapterServerContext); @@ -991,13 +971,13 @@ void CAIPSetExceptionCallback(CAIPExceptionCallback callback) OIC_LOG(DEBUG, IP_SERVER_TAG, "IN"); ca_mutex_lock(g_mutexAdapterServerContext); - if (!g_adapterIPServerContext) + if (!g_adapterEthServerContext) { - OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterIPServerContext NULL"); + OIC_LOG(ERROR, IP_SERVER_TAG, "g_adapterEthServerContext NULL"); ca_mutex_unlock(g_mutexAdapterServerContext); return; } - g_adapterIPServerContext->exceptionCallback = callback; + g_adapterEthServerContext->exceptionCallback = callback; ca_mutex_unlock(g_mutexAdapterServerContext);