[IOT-570] fixed multicast issue
authorjihwan.seo <jihwan.seo@samsung.com>
Wed, 17 Jun 2015 10:38:21 +0000 (19:38 +0900)
committerErich Keane <erich.keane@intel.com>
Fri, 19 Jun 2015 15:26:02 +0000 (15:26 +0000)
there are some wrong codes in IPv6 changed.
CreateEndPoint(..) API need address parameter
even through Multicast

Change-Id: Ie9829c5ee56fb81446184737904a699efd941b9d
Signed-off-by: jihwan.seo <jihwan.seo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1323
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Erich Keane <erich.keane@intel.com>
resource/csdk/connectivity/src/adapter_util/caadapterutils.c
resource/csdk/connectivity/src/cainterfacecontroller.c
resource/csdk/connectivity/src/cainterfacecontroller_singlethread.c
resource/csdk/connectivity/test/ca_api_unittest.cpp

index b21d3d0..0eb55a5 100644 (file)
@@ -70,7 +70,6 @@ CAEndpoint_t *CAAdapterCreateEndpoint(CATransportFlags_t flags,
                                       const char *address,
                                       uint16_t port)
 {
-    VERIFY_NON_NULL_RET(address, CA_ADAPTER_UTILS_TAG, "Endpoint is NULL", NULL);
     CAEndpoint_t *info = (CAEndpoint_t *)OICCalloc(1, sizeof(CAEndpoint_t));
     if (NULL == info)
     {
@@ -78,8 +77,11 @@ CAEndpoint_t *CAAdapterCreateEndpoint(CATransportFlags_t flags,
         return NULL;
     }
 
-    OICStrcpy(info->addr, sizeof(info->addr), address);
-    info->addr[MAX_ADDR_STR_SIZE_CA - 1] = '\0';
+    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;
@@ -95,12 +97,12 @@ CAEndpoint_t *CAAdapterCreateLocalEndpoint(CATransportFlags_t flags,
 
 CAResult_t CACreateEndpoint(CATransportFlags_t flags,
                             CATransportAdapter_t adapter,
-                            const CAURI_t uri,
+                            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, uri, port);
+    CAEndpoint_t *endpoint = CAAdapterCreateEndpoint(flags, adapter, addr, port);
     if (!endpoint)
     {
         return CA_STATUS_FAILED;
@@ -535,4 +537,3 @@ JavaVM *CANativeJNIGetJavaVM()
     return g_jvm;
 }
 #endif
-
index 9cf61ae..37645db 100644 (file)
@@ -54,9 +54,9 @@ static int CAGetAdapterIndex(CATransportAdapter_t cType)
     {
         case CA_ADAPTER_IP:
             return 0;
-        case CA_ADAPTER_RFCOMM_BTEDR:
-            return 1;
         case CA_ADAPTER_GATT_BTLE:
+            return 1;
+        case CA_ADAPTER_RFCOMM_BTEDR:
             return 2;
         default:
             break;
index 3bbb240..b72f23b 100644 (file)
@@ -55,9 +55,9 @@ static int CAGetAdapterIndex(CATransportAdapter_t cType)
     {
         case CA_ADAPTER_IP:
             return 0;
-        case CA_ADAPTER_RFCOMM_BTEDR:
-            return 1;
         case CA_ADAPTER_GATT_BTLE:
+            return 1;
+        case CA_ADAPTER_RFCOMM_BTEDR:
             return 2;
     }
 
index cb566a8..3fe49b2 100644 (file)
@@ -63,6 +63,7 @@ void error_handler(const CAEndpoint_t *object, const CAErrorInfo_t* errorInfo)
 }
 
 static char* uri = NULL;
+static char* addr = NULL;
 static CAEndpoint_t* tempRep = NULL;
 static CARequestInfo_t requestInfo;
 static CAInfo_t requestData;
@@ -71,6 +72,8 @@ static CAResponseInfo_t responseInfo;
 static CAToken_t tempToken = NULL;
 static uint8_t tokenLength = CA_MAX_TOKEN_LEN;
 static const char URI[] = "coap://10.11.12.13:4545/a/light";
+static const char ADDRESS[] = "10.11.12.13";
+static const uint16_t PORT = 4545;
 static const char RESOURCE_URI[] = "/a/light";
 
 static const char SECURE_INFO_DATA[] =
@@ -195,9 +198,10 @@ TEST_F(CATests, RegisterHandlerTest)
 // check return value
 TEST_F(CATests, CreateRemoteEndpointTestGood)
 {
-    uri = (char *) URI;
+    addr = (char *) ADDRESS;
 
-    EXPECT_EQ(CA_STATUS_OK, CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep));
+    EXPECT_EQ(CA_STATUS_OK, CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr,
+                                             PORT, &tempRep));
 
     if (tempRep != NULL)
     {
@@ -209,9 +213,9 @@ TEST_F(CATests, CreateRemoteEndpointTestGood)
 // check remoteEndpoint and values of remoteEndpoint
 TEST_F(CATests, CreateRemoteEndpointTestValues)
 {
-    uri = (char *) URI;
+    addr = (char *) ADDRESS;
 
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
+    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep);
 
     EXPECT_TRUE(tempRep != NULL);
 
@@ -222,20 +226,6 @@ TEST_F(CATests, CreateRemoteEndpointTestValues)
     }
 }
 
-// check return value when uri is NULL
-TEST_F(CATests, CreateRemoteEndpointTestBad)
-{
-    uri = NULL;
-
-    EXPECT_EQ(CA_STATUS_FAILED, CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep));
-
-    if (tempRep != NULL)
-    {
-        CADestroyEndpoint(tempRep);
-        tempRep = NULL;
-    }
-}
-
 // CAGerateToken TC
 // check return value
 TEST_F(CATests, GenerateTokenTestGood)
@@ -266,8 +256,8 @@ TEST_F(CATests, DestroyTokenTest)
 // check return value
 TEST(SendRequestTest, DISABLED_TC_16_Positive_01)
 {
-    uri = (char *) URI;
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
+    addr = (char *) ADDRESS;
+    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep);
 
     memset(&requestData, 0, sizeof(CAInfo_t));
     CAGenerateToken(&tempToken, tokenLength);
@@ -299,49 +289,11 @@ TEST(SendRequestTest, DISABLED_TC_16_Positive_01)
 
 }
 
-// check return value when uri is NULL
-TEST_F(CATests, SendRequestTestWithNullURI)
-{
-    uri = NULL;
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
-
-    memset(&requestData, 0, sizeof(CAInfo_t));
-    CAGenerateToken(&tempToken, tokenLength);
-    requestData.token = tempToken;
-    requestData.tokenLength = tokenLength;
-
-    int length = strlen(NORMAL_INFO_DATA) + strlen("a/light");
-    requestData.payload = (CAPayload_t) calloc(length, sizeof(char));
-    if(!requestData.payload)
-    {
-        CADestroyToken(tempToken);
-        FAIL() << "requestData.payload allocation failed";
-    }
-    snprintf(requestData.payload, length, NORMAL_INFO_DATA, "a/light");
-    requestData.type = CA_MSG_NONCONFIRM;
-
-    memset(&requestInfo, 0, sizeof(CARequestInfo_t));
-    requestInfo.method = CA_GET;
-    requestInfo.info = requestData;
-
-    EXPECT_EQ(CA_STATUS_INVALID_PARAM, CASendRequest(tempRep, &requestInfo));
-
-    CADestroyToken(tempToken);
-
-    free(requestData.payload);
-
-    if (tempRep != NULL)
-    {
-        CADestroyEndpoint(tempRep);
-        tempRep = NULL;
-    }
-}
-
 // check return value when a NULL is passed instead of a valid CARequestInfo_t address
 TEST_F(CATests, SendRequestTestWithNullAddr)
 {
-    uri = (char *) URI;
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
+    addr = (char *) ADDRESS;
+    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep);
 
     EXPECT_EQ(CA_STATUS_INVALID_PARAM, CASendRequest(tempRep, NULL));
 
@@ -356,8 +308,8 @@ TEST_F(CATests, SendRequestTestWithNullAddr)
 // check return value
 TEST(SendResponseTest, DISABLED_TC_19_Positive_01)
 {
-    uri = (char *) URI;
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
+    addr = (char *) ADDRESS;
+    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep);
 
     memset(&responseData, 0, sizeof(CAInfo_t));
     responseData.type = CA_MSG_NONCONFIRM;
@@ -379,11 +331,11 @@ TEST(SendResponseTest, DISABLED_TC_19_Positive_01)
     tempRep = NULL;
 }
 
-// check return value when uri is NULL
+// check return value when address is NULL as multicast
 TEST(SendResponseTest, DISABLED_TC_20_Negative_01)
 {
-    uri = NULL;
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
+    addr = NULL;
+    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, 0, &tempRep);
 
     memset(&responseData, 0, sizeof(CAInfo_t));
     responseData.type = CA_MSG_NONCONFIRM;
@@ -398,7 +350,7 @@ TEST(SendResponseTest, DISABLED_TC_20_Negative_01)
     responseInfo.result = CA_SUCCESS;
     responseInfo.info = responseData;
 
-    EXPECT_EQ(CA_STATUS_INVALID_PARAM, CASendResponse(tempRep, &responseInfo));
+    EXPECT_EQ(CA_STATUS_OK, CASendResponse(tempRep, &responseInfo));
 
     CADestroyToken(tempToken);
     if (tempRep != NULL)
@@ -411,8 +363,8 @@ TEST(SendResponseTest, DISABLED_TC_20_Negative_01)
 // check return value NULL is passed instead of a valid CAResponseInfo_t address
 TEST_F(CATests, SendResponseTest)
 {
-    uri = (char *) URI;
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
+    addr = (char *) ADDRESS;
+    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep);
 
     EXPECT_EQ(CA_STATUS_INVALID_PARAM, CASendResponse(tempRep, NULL));
 
@@ -427,8 +379,8 @@ TEST_F(CATests, SendResponseTest)
 // check return value
 TEST(SendNotificationTest, DISABLED_TC_22_Positive_01)
 {
-    uri = (char *) URI;
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
+    addr = (char *) ADDRESS;
+    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, addr, PORT, &tempRep);
 
     memset(&responseData, 0, sizeof(CAInfo_t));
     responseData.type = CA_MSG_NONCONFIRM;
@@ -452,34 +404,6 @@ TEST(SendNotificationTest, DISABLED_TC_22_Positive_01)
     }
 }
 
-// check return value when uri is NULL
-TEST_F(CATests, SendNotificationTest)
-{
-    uri = NULL;
-    CACreateEndpoint(CA_DEFAULT_FLAGS, CA_ADAPTER_IP, uri, 0, &tempRep);
-
-    memset(&responseData, 0, sizeof(CAInfo_t));
-    responseData.type = CA_MSG_NONCONFIRM;
-    responseData.payload = (char *) "Temp Notification Data";
-
-    CAGenerateToken(&tempToken, tokenLength);
-    requestData.token = tempToken;
-    requestData.tokenLength = tokenLength;
-
-    memset(&responseInfo, 0, sizeof(CAResponseInfo_t));
-    responseInfo.result = CA_SUCCESS;
-    responseInfo.info = responseData;
-
-    EXPECT_EQ(CA_STATUS_INVALID_PARAM, CASendNotification(tempRep, &responseInfo));
-
-    CADestroyToken(tempToken);
-    if (tempRep != NULL)
-    {
-        CADestroyEndpoint(tempRep);
-        tempRep = NULL;
-    }
-}
-
 // CASelectNewwork TC
 // check return value
 TEST_F(CATests, SelectNetworkTestGood)