Changes related to accept socket initialization
authorhyuna0213.jo <hyuna0213.jo@samsung.com>
Wed, 16 Mar 2016 02:28:43 +0000 (11:28 +0900)
committerJon A. Cruz <jon@joncruz.org>
Thu, 17 Mar 2016 14:49:52 +0000 (14:49 +0000)
Changed tcp adapter start logic to create accept socket only when
host is server.

Change-Id: If0c20f20e8bacdcca63b20e0b204e87c7d1e78df
Signed-off-by: hyuna0213.jo <hyuna0213.jo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/5941
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: jihwan seo <jihwan.seo@samsung.com>
Reviewed-by: Jee Hyeok Kim <jihyeok13.kim@samsung.com>
(cherry picked from commit 895ffc47e860f4ae78577853b1f8e39fa708c79f)
Reviewed-on: https://gerrit.iotivity.org/gerrit/6001
Reviewed-by: Jon A. Cruz <jon@joncruz.org>
resource/csdk/connectivity/src/tcp_adapter/catcpadapter.c
resource/csdk/connectivity/src/tcp_adapter/catcpserver.c

index 22ce787..1108877 100644 (file)
@@ -275,21 +275,26 @@ CAResult_t CAStartTCP()
         return CA_STATUS_FAILED;
     }
 
+    return CA_STATUS_OK;
+}
+
+CAResult_t CAStartTCPListeningServer()
+{
+    if (!caglobals.server)
+    {
+        caglobals.server = true;    // only needed to run CA tests
+    }
+
     CAResult_t ret = CATCPStartServer((const ca_thread_pool_t)caglobals.tcp.threadpool);
     if (CA_STATUS_OK != ret)
     {
-        OIC_LOG_V(ERROR, TAG, "Failed to start server![%d]", ret);
+        OIC_LOG_V(ERROR, TAG, "Failed to start listening server![%d]", ret);
         return ret;
     }
 
     return CA_STATUS_OK;
 }
 
-CAResult_t CAStartTCPListeningServer()
-{
-    return CA_STATUS_OK;
-}
-
 CAResult_t CAStopTCPListeningServer()
 {
     return CA_STATUS_OK;
@@ -297,6 +302,18 @@ CAResult_t CAStopTCPListeningServer()
 
 CAResult_t CAStartTCPDiscoveryServer()
 {
+    if (!caglobals.client)
+    {
+        caglobals.client = true;    // only needed to run CA tests
+    }
+
+    CAResult_t ret = CATCPStartServer((const ca_thread_pool_t)caglobals.tcp.threadpool);
+    if (CA_STATUS_OK != ret)
+    {
+        OIC_LOG_V(ERROR, TAG, "Failed to start discovery server![%d]", ret);
+        return ret;
+    }
+
     return CA_STATUS_OK;
 }
 
index 4fe652f..bb6f9c1 100644 (file)
@@ -436,6 +436,12 @@ exit:
 
 static CAResult_t CACreateAcceptSocket()
 {
+    if (g_acceptServerFD != -1)
+    {
+        OIC_LOG(DEBUG, TAG, "accept socket created already");
+        return CA_STATUS_OK;
+    }
+
     int reuse = 1;
     struct sockaddr_in server = { .sin_addr.s_addr = INADDR_ANY,
                                   .sin_family = AF_INET,
@@ -542,11 +548,14 @@ CAResult_t CATCPStartServer(const ca_thread_pool_t threadPool)
     }
     ca_mutex_unlock(g_mutexObjectList);
 
-    res = CACreateAcceptSocket();
-    if (CA_STATUS_OK != res)
+    if (caglobals.server)
     {
-        OIC_LOG(ERROR, TAG, "failed to create accept socket");
-        return res;
+        res = CACreateAcceptSocket();
+        if (CA_STATUS_OK != res)
+        {
+            OIC_LOG(ERROR, TAG, "failed to create accept socket");
+            return res;
+        }
     }
 
     // create pipe for fast shutdown