From: YounghyunJoo Date: Fri, 19 Aug 2016 08:50:47 +0000 (+0900) Subject: Fix Consumer's bug & support to non topic scenario X-Git-Tag: 1.2.0+RC1~52^2~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0bc0752009b578183f32a11c4378adc4092182f4;p=platform%2Fupstream%2Fiotivity.git Fix Consumer's bug & support to non topic scenario Change-Id: Iaf704defc826147d85762095ebb0981398e77cac Signed-off-by: YounghyunJoo Reviewed-on: https://gerrit.iotivity.org/gerrit/10669 Reviewed-by: Chihyun Cho Reviewed-by: jaesick shin Reviewed-by: Uze Choi Tested-by: jenkins-iotivity --- diff --git a/service/notification/examples/linux/notificationconsumer.c b/service/notification/examples/linux/notificationconsumer.c index 6a64ce3..f715eac 100644 --- a/service/notification/examples/linux/notificationconsumer.c +++ b/service/notification/examples/linux/notificationconsumer.c @@ -105,7 +105,7 @@ void onNotificationPosted(NSMessage * notification) printf("title : %s\n", notification->title); printf("content : %s\n", notification->contentText); printf("source : %s\n", notification->sourceName); - if (notification->topic) + if (notification->topic && strlen(notification->topic) > 0) { printf("topic : %s\n", notification->topic); } diff --git a/service/notification/src/consumer/NSConsumerCommon.c b/service/notification/src/consumer/NSConsumerCommon.c index 93ced34..3b71550 100644 --- a/service/notification/src/consumer/NSConsumerCommon.c +++ b/service/notification/src/consumer/NSConsumerCommon.c @@ -1,4 +1,3 @@ - //****************************************************************** // // Copyright 2016 Samsung Electronics All Rights Reserved. @@ -134,10 +133,7 @@ void NSDiscoveredProvider(NSProvider * provider) { NS_VERIFY_NOT_NULL_V(provider); - NSProvider * retProvider = (NSProvider *)NSCopyProvider_internal((NSProvider_internal *)provider); - NS_VERIFY_NOT_NULL_V(retProvider); - - NSConsumerThread * thread = NSThreadInit(NSDiscoveredProviderFunc, (void *) retProvider); + NSConsumerThread * thread = NSThreadInit(NSDiscoveredProviderFunc, (void *) provider); NS_VERIFY_NOT_NULL_V(thread); } @@ -249,6 +245,11 @@ NSMessage * NSCopyMessage(NSMessage * msg) newMsg->sourceName = OICStrdup(msg->sourceName); newMsg->dateTime = OICStrdup(msg->dateTime); newMsg->type = msg->type; + newMsg->topic = NULL; + if (msg->topic && strlen(msg->topic) > 0) + { + newMsg->topic = OICStrdup(msg->topic); + } // TODO change to copy function. newMsg->mediaContents = msg->mediaContents; @@ -264,6 +265,7 @@ void NSRemoveMessage(NSMessage * msg) NSOICFree(msg->contentText); NSOICFree(msg->sourceName); NSOICFree(msg->dateTime); + NSOICFree(msg->topic); // TODO change to remove function. NSOICFree(msg->mediaContents); diff --git a/service/notification/src/consumer/NSConsumerCommunication.c b/service/notification/src/consumer/NSConsumerCommunication.c index a21741b..ef63b4b 100644 --- a/service/notification/src/consumer/NSConsumerCommunication.c +++ b/service/notification/src/consumer/NSConsumerCommunication.c @@ -557,7 +557,7 @@ NSTopicLL * NSGetTopicLL(OCClientResponse * clientResponse) NS_VERIFY_NOT_NULL(payloadValue, NULL); size_t dimensionSize = calcDimTotal(payloadValue->arr.dimensions); - NS_LOG_V(DEBUG, "DimensionSize: %d", dimensionSize); + NS_LOG_V(DEBUG, "DimensionSize: %d", (int)dimensionSize); if (dimensionSize == 0 || payloadValue->type == OCREP_PROP_NULL || payloadValue->arr.objArray == NULL) @@ -589,7 +589,7 @@ NSTopicLL * NSGetTopicLL(OCClientResponse * clientResponse) NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(getResult == true ? (void *) 1 : NULL, NULL, NSRemoveTopicLL(topicLL)); NS_LOG_V(DEBUG, "topic name: %s", topicName); - NS_LOG_V(DEBUG, "topic selection: %d", state); + NS_LOG_V(DEBUG, "topic selection: %d", (int)state); topicNode->topicName = topicName; topicNode->state = state; diff --git a/service/notification/src/consumer/NSConsumerDiscovery.c b/service/notification/src/consumer/NSConsumerDiscovery.c index 4277591..96ec822 100644 --- a/service/notification/src/consumer/NSConsumerDiscovery.c +++ b/service/notification/src/consumer/NSConsumerDiscovery.c @@ -222,8 +222,6 @@ NSProvider_internal * NSGetProvider(OCClientResponse * clientResponse) NS_LOG(DEBUG, "get topic URI"); getResult = OCRepPayloadGetPropString(payload, NS_ATTRIBUTE_TOPIC, & topicUri); - NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(getResult == true ? (void *) 1 : NULL, NULL, - NSGetProviderPostClean(providerId, messageUri, syncUri, topicUri, connection)); NS_LOG(DEBUG, "get provider connection information"); NS_VERIFY_NOT_NULL(clientResponse->addr, NULL); @@ -239,7 +237,11 @@ NSProvider_internal * NSGetProvider(OCClientResponse * clientResponse) NSOICFree(providerId); newProvider->messageUri = messageUri; newProvider->syncUri = syncUri; - newProvider->topicUri = topicUri; + newProvider->topicUri = NULL; + if (topicUri && strlen(topicUri) > 0) + { + newProvider->topicUri = topicUri; + } newProvider->accessPolicy = (NSSelector)accepter; newProvider->connection = connection; newProvider->topicLL = NULL;