From 4bda4196b7a1446c06b1775102b24684107a026c Mon Sep 17 00:00:00 2001 From: "jihwan.seo" Date: Fri, 25 Nov 2016 09:00:39 +0900 Subject: [PATCH] add deviceID information in CA layer 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 Reviewed-on: https://gerrit.iotivity.org/gerrit/14769 Tested-by: jenkins-iotivity Reviewed-by: Jaehong Jo Reviewed-by: Dan Mihai --- android/android_api/base/jni/Android.mk | 3 +++ resource/csdk/connectivity/api/cacommon.h | 3 +++ resource/csdk/connectivity/src/camessagehandler.c | 2 ++ resource/csdk/stack/include/octypes.h | 4 ++++ resource/csdk/stack/src/ocstack.c | 23 ++++++++++++++++++++++ .../android/EasySetupCore/src/main/jni/Android.mk | 1 + .../notification-service/src/main/jni/Android.mk | 2 ++ .../resource-container/src/main/jni/Android.mk | 1 + .../android/service/src/main/jni/Android.mk | 1 + 9 files changed, 40 insertions(+) diff --git a/android/android_api/base/jni/Android.mk b/android/android_api/base/jni/Android.mk index 7852692..d2543b5 100644 --- a/android/android_api/base/jni/Android.mk +++ b/android/android_api/base/jni/Android.mk @@ -18,6 +18,7 @@ include $(CLEAR_VARS) OIC_LIB_PATH := ../../../../out/android/$(APP_ABI)/$(APP_OPTIM) LOCAL_MODULE := libandroid-octbstack LOCAL_SRC_FILES := $(OIC_LIB_PATH)/liboctbstack.so +LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/ocrandom/include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) @@ -60,6 +61,7 @@ LOCAL_STATIC_LIBRARIES := libandroid-ca LOCAL_LDLIBS := -llog LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/csdk/connectivity/api LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common +LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/ocrandom/include include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) @@ -167,6 +169,7 @@ LOCAL_C_INCLUDES := $(OIC_SRC_PATH)/include LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/oic_string/include LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/oic_malloc/include +LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/c_common/ocrandom/include LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/csdk/stack/include LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/csdk/ocsocket/include LOCAL_C_INCLUDES += $(OIC_SRC_PATH)/csdk/resource-directory/include diff --git a/resource/csdk/connectivity/api/cacommon.h b/resource/csdk/connectivity/api/cacommon.h index 5c8a353..81d116a 100644 --- a/resource/csdk/connectivity/api/cacommon.h +++ b/resource/csdk/connectivity/api/cacommon.h @@ -47,6 +47,8 @@ #include #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. **/ diff --git a/resource/csdk/connectivity/src/camessagehandler.c b/resource/csdk/connectivity/src/camessagehandler.c index 53efbd1..9ac61d9 100644 --- a/resource/csdk/connectivity/src/camessagehandler.c +++ b/resource/csdk/connectivity/src/camessagehandler.c @@ -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) diff --git a/resource/csdk/stack/include/octypes.h b/resource/csdk/stack/include/octypes.h index 1d53182..bd1d5a7 100644 --- a/resource/csdk/stack/include/octypes.h +++ b/resource/csdk/stack/include/octypes.h @@ -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; /** diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index 1ba0ae4..4b5b810 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -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) { diff --git a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/jni/Android.mk b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/jni/Android.mk index 3ff2d43..af7593d 100755 --- a/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/jni/Android.mk +++ b/service/easy-setup/mediator/richsdk/android/EasySetupCore/src/main/jni/Android.mk @@ -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 \ diff --git a/service/notification/android/notification-service/src/main/jni/Android.mk b/service/notification/android/notification-service/src/main/jni/Android.mk index 61cfe77..aeafd88 100755 --- a/service/notification/android/notification-service/src/main/jni/Android.mk +++ b/service/notification/android/notification-service/src/main/jni/Android.mk @@ -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 diff --git a/service/resource-container/android/resource-container/src/main/jni/Android.mk b/service/resource-container/android/resource-container/src/main/jni/Android.mk index d5620f6..734b04a 100644 --- a/service/resource-container/android/resource-container/src/main/jni/Android.mk +++ b/service/resource-container/android/resource-container/src/main/jni/Android.mk @@ -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/ diff --git a/service/resource-encapsulation/android/service/src/main/jni/Android.mk b/service/resource-encapsulation/android/service/src/main/jni/Android.mk index 9ab9118..b6ac280 100644 --- a/service/resource-encapsulation/android/service/src/main/jni/Android.mk +++ b/service/resource-encapsulation/android/service/src/main/jni/Android.mk @@ -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 -- 2.7.4