add deviceID information in CA layer
authorjihwan.seo <jihwan.seo@samsung.com>
Fri, 25 Nov 2016 00:00:39 +0000 (09:00 +0900)
committerDan Mihai <Daniel.Mihai@microsoft.com>
Tue, 29 Nov 2016 22:09:17 +0000 (22:09 +0000)
since IP can be changed by AP status.
it is needed to have deviceID in CA layer.

Change-Id: I94fe8c3f48356a9d58ec8004387b99a39398041e
Signed-off-by: jihwan.seo <jihwan.seo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/14769
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jaehong Jo <jaehong.jo@samsung.com>
Reviewed-by: Dan Mihai <Daniel.Mihai@microsoft.com>
android/android_api/base/jni/Android.mk
resource/csdk/connectivity/api/cacommon.h
resource/csdk/connectivity/src/camessagehandler.c
resource/csdk/stack/include/octypes.h
resource/csdk/stack/src/ocstack.c
service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/jni/Android.mk
service/notification/android/notification-service/src/main/jni/Android.mk
service/resource-container/android/resource-container/src/main/jni/Android.mk
service/resource-encapsulation/android/service/src/main/jni/Android.mk

index 7852692..d2543b5 100644 (file)
@@ -18,6 +18,7 @@ include $(CLEAR_VARS)
 OIC_LIB_PATH := ../../../../out/android/$(APP_ABI)/$(APP_OPTIM)\r
 LOCAL_MODULE := libandroid-octbstack\r
 LOCAL_SRC_FILES := $(OIC_LIB_PATH)/liboctbstack.so\r
+LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/ocrandom/include\r
 include $(PREBUILT_SHARED_LIBRARY)\r
 \r
 include $(CLEAR_VARS)\r
@@ -60,6 +61,7 @@ LOCAL_STATIC_LIBRARIES := libandroid-ca
 LOCAL_LDLIBS := -llog\r
 LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/csdk/connectivity/api\r
 LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common\r
+LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/ocrandom/include\r
 include $(BUILD_SHARED_LIBRARY)\r
 \r
 include $(CLEAR_VARS)\r
@@ -167,6 +169,7 @@ LOCAL_C_INCLUDES := $(OIC_SRC_PATH)/include
 LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common\r
 LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/oic_string/include\r
 LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/oic_malloc/include\r
+LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/ocrandom/include\r
 LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/csdk/stack/include\r
 LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/csdk/ocsocket/include\r
 LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/csdk/resource-directory/include\r
index 5c8a353..81d116a 100644 (file)
@@ -47,6 +47,8 @@
 #include <mswsock.h>
 #endif
 
+#include "ocrandom.h"
+
 #ifdef __cplusplus
 extern "C"
 {
@@ -280,6 +282,7 @@ typedef struct
     uint16_t                port;       // for IP
     char                    addr[MAX_ADDR_STR_SIZE_CA]; // address for all
     uint32_t                ifindex;    // usually zero for default interface
+    char                    deviceId[UUID_STRING_SIZE]; // device ID of remote device
 #if defined (ROUTING_GATEWAY) || defined (ROUTING_EP)
     char                    routeData[MAX_ADDR_STR_SIZE_CA]; /**< GatewayId:ClientId of
                                                                     destination. **/
index 53efbd1..9ac61d9 100644 (file)
@@ -978,6 +978,8 @@ CAResult_t CADetachSendMessage(const CAEndpoint_t *endpoint, const void *sendMsg
         return CA_MEMORY_ALLOC_FAILED;
     }
 
+    OIC_LOG_V(DEBUG, TAG, "device ID of endpoint of this message is %s", endpoint->deviceId);
+
 #ifdef SINGLE_THREAD
     CAResult_t result = CAProcessSendData(data);
     if (CA_STATUS_OK != result)
index 1d53182..bd1d5a7 100644 (file)
@@ -43,6 +43,7 @@ extern "C" {
 #define WITH_PRESENCE
 
 #include "ocpresence.h"
+#include "ocrandom.h"
 //-----------------------------------------------------------------------------
 // Defines
 //-----------------------------------------------------------------------------
@@ -705,6 +706,9 @@ typedef struct
     /** destination GatewayID:ClientId.*/
     char                    routeData[MAX_ADDR_STR_SIZE];
 
+    /** destination DeviceID.*/
+    char                    deviceId[UUID_STRING_SIZE];
+
 } OCDevAddr;
 
 /**
index 1ba0ae4..4b5b810 100644 (file)
@@ -484,6 +484,7 @@ void CopyDevAddrToEndpoint(const OCDevAddr *in, CAEndpoint_t *out)
     out->adapter = (CATransportAdapter_t)in->adapter;
     out->flags = OCToCATransportFlags(in->flags);
     OICStrcpy(out->addr, sizeof(out->addr), in->addr);
+    OICStrcpy(out->deviceId, sizeof(out->deviceId), in->deviceId);
 #if defined (ROUTING_GATEWAY) || defined (ROUTING_EP)
     /* This assert is to prevent accidental mismatch between address size macros defined in
      * RI and CA and cause crash here. */
@@ -1436,6 +1437,22 @@ void OCHandleResponse(const CAEndpoint_t* endPoint, const CAResponseInfo_t* resp
                     OCUpdateResourceInsWithResponse(cbNode->requestUri, &response);
                 }
 #endif
+                // set deviceId into OCClientResponse callback parameter
+                if (OC_REST_DISCOVER == cbNode->method)
+                {
+                    OCDiscoveryPayload *payload = (OCDiscoveryPayload*) response.payload;
+                    if (!payload)
+                    {
+                        OIC_LOG(INFO, TAG, "discovery payload is invalid");
+                        return;
+                    }
+
+                    OICStrcpy(response.devAddr.deviceId, sizeof(response.devAddr.deviceId),
+                              payload->sid);
+                    OIC_LOG_V(INFO, TAG, "Device ID of response : %s",
+                              response.devAddr.deviceId);
+                }
+
                 OCStackApplicationResult appFeedback = cbNode->callBack(cbNode->context,
                                                                         cbNode->handle,
                                                                         &response);
@@ -2713,9 +2730,15 @@ OCStackResult OCDoResource(OCDoHandle *handle,
             result = OC_STACK_NO_MEMORY;
             goto exit;
         }
+        OIC_LOG(DEBUG, TAG, "devAddr is set as destination");
         *devAddr = *destination;
     }
 
+    if (devAddr)
+    {
+        OIC_LOG_V(DEBUG, TAG, "DeviceID of devAddr : %s", devAddr->deviceId);
+    }
+
     resHandle = GenerateInvocationHandle();
     if (!resHandle)
     {
index 3ff2d43..af7593d 100755 (executable)
@@ -75,6 +75,7 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH) \
                                        $(LOCAL_PATH)/../../../../../../../../../resource/c_common \
                                        $(LOCAL_PATH)/../../../../../../../../../resource/oc_logger/include \
                                        $(LOCAL_PATH)/../../../../../../../../../resource/c_common/oic_malloc/include \
+                                       $(LOCAL_PATH)/../../../../../../../../../resource/c_common/ocrandom/include \
                                        $(LOCAL_PATH)/../../../../../../../../../resource/csdk/connectivity/api \
                                        $(LOCAL_PATH)/../../../../../../../../../resource/csdk/stack/include \
                                        $(LOCAL_PATH)/../../../../../../../../../resource/csdk/logger/include \
index 61cfe77..aeafd88 100755 (executable)
@@ -41,6 +41,7 @@ LOCAL_C_INCLUDES := $(OIC_SRC_DIR)/resource/csdk/stack/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/csdk/logger/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common
+LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common/ocrandom/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common/oic_string/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/oc_logger/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/extlibs/boost/boost_1_58_0
@@ -91,6 +92,7 @@ LOCAL_C_INCLUDES := $(OIC_SRC_DIR)/resource/csdk/stack/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/csdk/logger/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common
+LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common/ocrandom/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common/oic_string/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/oc_logger/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/extlibs/boost/boost_1_58_0
index d5620f6..734b04a 100644 (file)
@@ -37,6 +37,7 @@ LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/csdk/stack/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/csdk/logger/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/oc_logger/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common
+LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common/ocrandom/include
 
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/extlibs/
 
index 9ab9118..b6ac280 100644 (file)
@@ -25,6 +25,7 @@ LOCAL_MODULE := rcs_jni
 LOCAL_C_INCLUDES := $(LOCAL_PATH)/util
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common
+LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/c_common/ocrandom/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/resource/csdk/stack/include
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/extlibs/boost/boost_1_58_0
 LOCAL_C_INCLUDES += $(OIC_SRC_DIR)/service/resource-encapsulation/include