Set transport flag according to adapter type in CA Sample
authorhyuna0213.jo <hyuna0213.jo@samsung.com>
Wed, 18 Nov 2015 08:50:02 +0000 (17:50 +0900)
committerJon A. Cruz <jonc@osg.samsung.com>
Mon, 23 Nov 2015 19:24:45 +0000 (19:24 +0000)
transportflag is always set with CA_IPV4.
so I fixed CA Sample to set the flag according to transport adapter.

Change-Id: I1bc7a86a193355365b2602d88130405e8c7ab187
Signed-off-by: hyuna0213.jo <hyuna0213.jo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/4263
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
resource/csdk/connectivity/samples/android/casample/sampleService/src/main/jni/ResourceModel.c
resource/csdk/connectivity/samples/linux/sample_main.c

index 8296951..f7d9738 100644 (file)
@@ -43,7 +43,7 @@ static void response_handler(const CAEndpoint_t* object, const CAResponseInfo_t*
 static void error_handler(const CAEndpoint_t *object, const CAErrorInfo_t* errorInfo);
 static void get_resource_uri(const char *URI, char *resourceURI, int32_t length);
 static uint32_t get_secure_information(CAPayload_t payLoad);
-static CAResult_t get_network_type(uint32_t selectedNetwork);
+static CAResult_t get_network_type(uint32_t selectedNetwork, CATransportFlags_t *flags);
 static void callback(char *subject, char *receivedData);
 static CAResult_t get_remote_address(const char *address);
 static void parsing_coap_uri(const char* uri, addressSet_t* address, CATransportFlags_t *flags);
@@ -297,7 +297,8 @@ Java_org_iotivity_ca_service_RMInterface_RMSendRequest(JNIEnv *env, jobject obj,
         return;
     }
 
-    CAResult_t res = get_network_type(selectedNetwork);
+    CATransportFlags_t flags = CA_DEFAULT_FLAGS;
+    CAResult_t res = get_network_type(selectedNetwork, &flags);
     if (CA_STATUS_OK != res)
     {
         return;
@@ -306,7 +307,6 @@ Java_org_iotivity_ca_service_RMInterface_RMSendRequest(JNIEnv *env, jobject obj,
     const char* strUri = (*env)->GetStringUTFChars(env, uri, NULL);
     LOGI("RMSendRequest - %s", strUri);
 
-    CATransportFlags_t flags;
     addressSet_t address = {{0}, 0};
     parsing_coap_uri(strUri, &address, &flags);
 
@@ -465,7 +465,8 @@ Java_org_iotivity_ca_service_RMInterface_RMSendReqestToAll(JNIEnv *env, jobject
         return;
     }
 
-    CAResult_t res = get_network_type(selectedNetwork);
+    CATransportFlags_t flags = CA_DEFAULT_FLAGS;
+    CAResult_t res = get_network_type(selectedNetwork, &flags);
     if (CA_STATUS_OK != res)
     {
         return;
@@ -473,7 +474,7 @@ Java_org_iotivity_ca_service_RMInterface_RMSendReqestToAll(JNIEnv *env, jobject
 
     // create remote endpoint
     CAEndpoint_t *endpoint = NULL;
-    res = CACreateEndpoint(CA_IPV4, g_selectedNwType, NULL, 0, &endpoint);
+    res = CACreateEndpoint(flags, g_selectedNwType, NULL, 0, &endpoint);
 
     if (CA_STATUS_OK != res)
     {
@@ -575,7 +576,8 @@ Java_org_iotivity_ca_service_RMInterface_RMSendResponse(JNIEnv *env, jobject obj
 
     LOGI("selectedNetwork - %d", selectedNetwork);
 
-    CAResult_t res = get_network_type(selectedNetwork);
+    CATransportFlags_t flags = CA_DEFAULT_FLAGS;
+    CAResult_t res = get_network_type(selectedNetwork, &flags);
     if (CA_STATUS_OK != res)
     {
         LOGE("Not supported network type");
@@ -668,7 +670,8 @@ Java_org_iotivity_ca_service_RMInterface_RMSendNotification(JNIEnv *env, jobject
         return;
     }
 
-    CAResult_t res = get_network_type(selectedNetwork);
+    CATransportFlags_t flags = CA_DEFAULT_FLAGS;
+    CAResult_t res = get_network_type(selectedNetwork, &flags);
     if (CA_STATUS_OK != res)
     {
         LOGE("Not supported network type");
@@ -678,7 +681,6 @@ Java_org_iotivity_ca_service_RMInterface_RMSendNotification(JNIEnv *env, jobject
     const char* strUri = (*env)->GetStringUTFChars(env, uri, NULL);
     LOGI("RMSendNotification - %s", strUri);
 
-    CATransportFlags_t flags;
     addressSet_t address = {{0}, 0};
     parsing_coap_uri(strUri, &address, &flags);
 
@@ -1373,7 +1375,7 @@ uint32_t get_secure_information(CAPayload_t payLoad)
     return atoi(portStr);
 }
 
-CAResult_t get_network_type(uint32_t selectedNetwork)
+CAResult_t get_network_type(uint32_t selectedNetwork, CATransportFlags_t *flags)
 {
 
     uint32_t number = selectedNetwork;
@@ -1384,6 +1386,7 @@ CAResult_t get_network_type(uint32_t selectedNetwork)
     }
     if (number & CA_ADAPTER_IP)
     {
+        *flags = CA_IPV4;
         g_selectedNwType = CA_ADAPTER_IP;
         return CA_STATUS_OK;
     }
@@ -1503,7 +1506,6 @@ void parsing_coap_uri(const char* uri, addressSet_t* address, CATransportFlags_t
     {
         LOGI("uri has '%s' prefix", COAP_PREFIX);
         startIndex = COAP_PREFIX_LEN;
-        *flags = CA_IPV4;
     }
 
     // #2. copy uri for parse
index d717f0f..0a465f2 100644 (file)
@@ -64,7 +64,7 @@ typedef struct
 
 char get_menu();
 void process();
-CAResult_t get_network_type();
+CAResult_t get_network_type(CATransportFlags_t *flags);
 CAResult_t get_input_data(char *buf, int32_t length);
 
 bool select_payload_type();
@@ -378,7 +378,8 @@ CAPayload_t get_binary_payload(size_t *payloadLength)
 
 void send_request()
 {
-    CAResult_t res = get_network_type();
+    CATransportFlags_t flags = CA_DEFAULT_FLAGS;
+    CAResult_t res = get_network_type(&flags);
     if (CA_STATUS_OK != res)
     {
         return;
@@ -418,7 +419,6 @@ void send_request()
 
     // create remote endpoint
     CAEndpoint_t *endpoint = NULL;
-    CATransportFlags_t flags;
 
     printf("URI : %s\n", uri);
     addressSet_t address = {{}, 0};
@@ -628,7 +628,8 @@ exit:
 
 void send_request_all()
 {
-    CAResult_t res = get_network_type();
+    CATransportFlags_t flags = CA_DEFAULT_FLAGS;
+    CAResult_t res = get_network_type(&flags);
     if (CA_STATUS_OK != res)
     {
         return;
@@ -646,7 +647,7 @@ void send_request_all()
 
     // create remote endpoint
     CAEndpoint_t *group = NULL;
-    res = CACreateEndpoint(CA_IPV4, g_selected_nw_type, NULL, 0, &group);
+    res = CACreateEndpoint(flags, g_selected_nw_type, NULL, 0, &group);
     if (CA_STATUS_OK != res)
     {
         printf("Create remote endpoint error, error code: %d\n", res);
@@ -713,7 +714,8 @@ void send_request_all()
 
 void send_notification()
 {
-    CAResult_t res = get_network_type();
+    CATransportFlags_t flags = CA_DEFAULT_FLAGS;
+    CAResult_t res = get_network_type(&flags);
     if (CA_STATUS_OK != res)
     {
         return;
@@ -748,7 +750,6 @@ void send_notification()
 
     int messageType = messageTypeBuf[0] - '0';
 
-    CATransportFlags_t flags;
     addressSet_t address = {{}, 0};
     parsing_coap_uri(uri, &address, &flags);
 
@@ -1380,7 +1381,7 @@ void get_resource_uri(char *URI, char *resourceURI, int length)
     printf("URI: %s, ResourceURI:%s\n", URI, resourceURI);
 }
 
-CAResult_t get_network_type()
+CAResult_t get_network_type(CATransportFlags_t *flags)
 {
     char buf[MAX_BUF_LEN] = { 0 };
 
@@ -1404,6 +1405,7 @@ CAResult_t get_network_type()
     switch (number)
     {
         case CA_ADAPTER_IP:
+            *flags = CA_IPV4;
         case CA_ADAPTER_GATT_BTLE:
         case CA_ADAPTER_RFCOMM_BTEDR:
         case CA_ADAPTER_TCP:
@@ -1515,13 +1517,11 @@ void parsing_coap_uri(const char* uri, addressSet_t* address, CATransportFlags_t
     {
         printf("uri has '%s' prefix\n", COAP_PREFIX);
         startIndex = COAP_PREFIX_LEN;
-        *flags = CA_IPV4;
     }
     else if (strncmp(COAP_TCP_PREFIX, uri, COAP_TCP_PREFIX_LEN) == 0)
     {
         printf("uri has '%s' prefix\n", COAP_TCP_PREFIX);
         startIndex = COAP_TCP_PREFIX_LEN;
-        *flags = CA_IPV4;
     }
 
     // #2. copy uri for parse