From 1a66e156f3378d4fa7d332d130a1dc7d4fa916f8 Mon Sep 17 00:00:00 2001 From: Sachin Agrawal Date: Fri, 20 Mar 2015 13:42:21 -0700 Subject: [PATCH] Fixed RI-CA review integration changes Updated files for some issues identified in Gerrit Patch 401. Change-Id: I5b6bfb60e10d9ae4af358e03aaf8c5a4d8854911 Signed-off-by: Sachin Agrawal Reviewed-on: https://gerrit.iotivity.org/gerrit/486 Tested-by: jenkins-iotivity Reviewed-by: Doug Hudson Reviewed-by: Erich Keane --- resource/csdk/stack/include/internal/ocresourcehandler.h | 1 + resource/csdk/stack/include/internal/ocstackinternal.h | 4 +--- resource/csdk/stack/include/ocstack.h | 6 +----- resource/csdk/stack/include/ocstackconfig.h | 4 ++++ resource/csdk/stack/src/ocresource.c | 12 ++++++------ resource/csdk/stack/src/ocserverrequest.c | 7 ++++--- resource/csdk/stack/src/ocstack.c | 2 +- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/resource/csdk/stack/include/internal/ocresourcehandler.h b/resource/csdk/stack/include/internal/ocresourcehandler.h index 67bae55..3aa4d4f 100644 --- a/resource/csdk/stack/include/internal/ocresourcehandler.h +++ b/resource/csdk/stack/include/internal/ocresourcehandler.h @@ -31,6 +31,7 @@ #define OC_RSRVD_OC "oc" #define OC_RSRVD_PAYLOAD "payload" #define OC_RSRVD_HREF "href" +#define OC_RSRVD_PROPERTY "prop" #define OC_RSRVD_REPRESENTATION "rep" #define OC_RSRVD_CONTENT_TYPE "ct" #define OC_RSRVD_RESOURCE_TYPE "rt" diff --git a/resource/csdk/stack/include/internal/ocstackinternal.h b/resource/csdk/stack/include/internal/ocstackinternal.h index ef73531..5f0e2b1 100644 --- a/resource/csdk/stack/include/internal/ocstackinternal.h +++ b/resource/csdk/stack/include/internal/ocstackinternal.h @@ -88,9 +88,7 @@ typedef struct /** Remote Endpoint address **/ ////////////////////////////////////////////////////////// - // TODO: Consider moving these member to CoAP - // IP address & port of client registered for observe - // TODO: YK bundle this up as endpoint + // TODO: bundle this up as endpoint CAAddress_t addressInfo; /** Connectivity of the endpoint**/ CAConnectivityType_t connectivityType; diff --git a/resource/csdk/stack/include/ocstack.h b/resource/csdk/stack/include/ocstack.h index 98129b3..64974b9 100644 --- a/resource/csdk/stack/include/ocstack.h +++ b/resource/csdk/stack/include/ocstack.h @@ -49,15 +49,11 @@ extern "C" { // Typedefs //----------------------------------------------------------------------------- -/** This would need to be modified for specific platforms and specific - * technologies - */ -#define DEV_ADDR_SIZE_MAX (16) /** * Data structure to encapsulate IPv4/IPv6/Contiki/lwIP device addresses * -*/ + */ typedef struct OCDevAddr { uint32_t size; /**< length of the address stored in addr field. */ diff --git a/resource/csdk/stack/include/ocstackconfig.h b/resource/csdk/stack/include/ocstackconfig.h index 9e14bd3..ad7c3da 100644 --- a/resource/csdk/stack/include/ocstackconfig.h +++ b/resource/csdk/stack/include/ocstackconfig.h @@ -24,6 +24,10 @@ // This file contains all the variables which can be configured/modified as // per platform or specific product usage scenarios. +/** This would need to be updated in future as we move to support IPv6 and other + * technologies. + */ +#define DEV_ADDR_SIZE_MAX (16) /** * Maximum length of the response supported by Server for any REST request. diff --git a/resource/csdk/stack/src/ocresource.c b/resource/csdk/stack/src/ocresource.c index f022841..582c6e9 100644 --- a/resource/csdk/stack/src/ocresource.c +++ b/resource/csdk/stack/src/ocresource.c @@ -195,7 +195,7 @@ BuildVirtualResourceResponse(OCResource *resourcePtr, uint8_t filterOn, if (resourcePtr) { encodeRes = 0; - if (filterOn == STACK_RES_DISCOVERY_RT_FILTER) + if ((filterOn == STACK_RES_DISCOVERY_RT_FILTER) && filterValue) { resourceTypePtr = resourcePtr->rsrcType; while (resourceTypePtr) @@ -208,7 +208,7 @@ BuildVirtualResourceResponse(OCResource *resourcePtr, uint8_t filterOn, resourceTypePtr = resourceTypePtr->next; } } - else if (filterOn == STACK_RES_DISCOVERY_IF_FILTER) + else if ((filterOn == STACK_RES_DISCOVERY_IF_FILTER) && filterValue) { interfacePtr = resourcePtr->rsrcInterface; while (interfacePtr) @@ -241,7 +241,7 @@ BuildVirtualResourceResponse(OCResource *resourcePtr, uint8_t filterOn, OC_RSRVD_SERVER_INSTANCE_ID, cJSON_CreateString(OCGetServerInstanceIDString())); - cJSON_AddItemToObject (resObj, "prop", propObj = cJSON_CreateObject()); + cJSON_AddItemToObject (resObj, OC_RSRVD_PROPERTY, propObj = cJSON_CreateObject()); // Add resource types cJSON_AddItemToObject (propObj, OC_RSRVD_RESOURCE_TYPE, rtArray = cJSON_CreateArray()); resourceTypePtr = resourcePtr->rsrcType; @@ -313,11 +313,11 @@ OCStackResult BuildVirtualResourceResponseForDevice(uint8_t filterOn, char *filt { char *jsonStr = NULL; uint16_t jsonLen = 0; - cJSON *repObj = cJSON_GetObjectItem(savedDeviceInfo, "rep"); + cJSON *repObj = cJSON_GetObjectItem(savedDeviceInfo, OC_RSRVD_REPRESENTATION); OC_LOG(INFO, TAG, PCF("Entering BuildVirtualResourceResponseForDevice")); - if (filterOn == STACK_DEVICE_DISCOVERY_DI_FILTER) + if ((filterOn == STACK_DEVICE_DISCOVERY_DI_FILTER) && filterValue) { if((cJSON_GetObjectItem(repObj,OC_RSRVD_DEVICE_ID) != NULL) && strcmp(cJSON_GetObjectItem(repObj,OC_RSRVD_DEVICE_ID)->valuestring, filterValue) @@ -326,7 +326,7 @@ OCStackResult BuildVirtualResourceResponseForDevice(uint8_t filterOn, char *filt ret = OC_STACK_OK; } } - else if (filterOn == STACK_DEVICE_DISCOVERY_DN_FILTER) + else if ((filterOn == STACK_DEVICE_DISCOVERY_DN_FILTER) && filterValue) { if((cJSON_GetObjectItem(repObj,OC_RSRVD_DEVICE_NAME) != NULL) && strcmp(cJSON_GetObjectItem(repObj,OC_RSRVD_DEVICE_NAME)->valuestring, diff --git a/resource/csdk/stack/src/ocserverrequest.c b/resource/csdk/stack/src/ocserverrequest.c index 8abdf51..56ab124 100644 --- a/resource/csdk/stack/src/ocserverrequest.c +++ b/resource/csdk/stack/src/ocserverrequest.c @@ -103,7 +103,8 @@ OCStackResult AddServerRequest (OCServerRequest ** request, uint16_t coapID, //Note: OCServerRequest includes 1 byte for the JSON Payload. payloadSize is calculated //as the required length of the string, so this will result in enough room for the //null terminator as well. - serverRequest = (OCServerRequest *) OCCalloc(1, sizeof(OCServerRequest) + reqTotalSize - 1); + serverRequest = (OCServerRequest *) OCCalloc(1, sizeof(OCServerRequest) + + (reqTotalSize ? reqTotalSize : 1) - 1); VERIFY_NON_NULL(serverRequest); serverRequest->coapID = coapID; @@ -130,7 +131,7 @@ OCStackResult AddServerRequest (OCServerRequest ** request, uint16_t coapID, memcpy(serverRequest->rcvdVendorSpecificHeaderOptions, rcvdVendorSpecificHeaderOptions, MAX_HEADER_OPTIONS * sizeof(OCHeaderOption)); } - if(reqJSONPayload) + if(reqJSONPayload && reqTotalSize) { // destination is at least 1 greater than the source, so a NULL always exists in the // last character @@ -300,7 +301,7 @@ OCStackResult HandleSingleResponse(OCEntityHandlerResponse * ehResponse) responseEndpoint.resourceUri = (CAURI_t) serverRequest->resourceUrl; responseEndpoint.addressInfo = serverRequest->addressInfo; responseEndpoint.connectivityType = serverRequest->connectivityType; - responseEndpoint.isSecured = serverRequest->secured; + responseEndpoint.isSecured = serverRequest->secured; // Copy the info switch (ehResponse->ehResult) diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index ee80d1d..7f7079c 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -1948,7 +1948,7 @@ OCStackResult OCCreateResource(OCResourceHandle *handle, // repeated URLs, which are not allowed. If a repeat is found, exit with an error while (pointer) { - if (strcmp(uri, pointer->uri) == 0) + if (strncmp(uri, pointer->uri, MAX_URI_LENGTH) == 0) { OC_LOG(ERROR, TAG, PCF("URI already in use")); return OC_STACK_INVALID_PARAM; -- 2.7.4