Revert "Adding error handling in IP Adapter"
authorErich Keane <erich.keane@intel.com>
Fri, 29 May 2015 20:08:57 +0000 (13:08 -0700)
committerErich Keane <erich.keane@intel.com>
Fri, 29 May 2015 20:58:15 +0000 (20:58 +0000)
This reverts commit c6f597bdc2eaf385c50be824cfb8845d7ca72e46.

Change-Id: Ia0d8b3a9b604206bb9027e170ba3fda6613aa0b3
Signed-off-by: Erich Keane <erich.keane@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1146
Reviewed-by: Joseph Morrow <joseph.l.morrow@intel.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
resource/csdk/connectivity/inc/caipadapter.h
resource/csdk/connectivity/inc/caipinterface.h
resource/csdk/connectivity/src/cainterfacecontroller.c
resource/csdk/connectivity/src/camessagehandler.c
resource/csdk/connectivity/src/ip_adapter/caipadapter.c
resource/csdk/connectivity/src/ip_adapter/caipclient.c
resource/csdk/connectivity/src/ip_adapter/caipserver.c

index e425da3..fc1e697 100644 (file)
@@ -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.
index 28b69dc..092a51e 100644 (file)
@@ -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
index 2f5b5bc..2abc0a8 100644 (file)
@@ -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)
index e918b1d..635289c 100644 (file)
@@ -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);
 
index 42ae6cf..bd9af23 100644 (file)
@@ -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");
index 70b7843..2f9cfd0 100644 (file)
@@ -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);
index c2e89bf..38f164c 100644 (file)
@@ -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);