modify logic for OC_REST_POST of topic.
authorjaesick.shin <jaesick.shin@samsung.com>
Tue, 23 Aug 2016 07:21:41 +0000 (16:21 +0900)
committerUze Choi <uzchoi@samsung.com>
Wed, 24 Aug 2016 06:42:32 +0000 (06:42 +0000)
1. Accepter is provider case :
   - our service is not support sendtopiclist from OC_REST_POST
2. // Accepter is consumer.
   - our service is support sendtopiclist from OC_REST_POST

Change-Id: I4e2090197f388892e831071e7d3ff600494261c7
Signed-off-by: jaesick.shin <jaesick.shin@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/10781
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
service/notification/src/provider/NSProviderListener.c

index 878c532..6a1a86e 100644 (file)
@@ -245,14 +245,20 @@ OCEntityHandlerResult NSEntityHandlerTopicCb(OCEntityHandlerFlag flag,
         else if (OC_REST_POST == entityHandlerRequest->method)\r
         {\r
             // Receive interesting topic list from consumers\r
-            NS_LOG(DEBUG, "NSEntityHandlerTopicCb - OC_REST_POST");\r
-\r
             // Send topic notice message(id = TOPIC) to the consumer \r
             // which requests to post.\r
-            NSPushQueue(TOPIC_SCHEDULER, TASK_POST_TOPIC,\r
-                    NSCopyOCEntityHandlerRequest(entityHandlerRequest));\r
+            NS_LOG(DEBUG, "NSEntityHandlerTopicCb - OC_REST_POST");\r
 \r
-            ehResult = OC_EH_OK;\r
+            // Accepter is provider. our service is not support sendtopiclist from OC_REST_POST\r
+            ehResult = OC_EH_ERROR;\r
+\r
+            // Accepter is consumer. our service is support sendtopiclist from OC_REST_POST\r
+            if(!NSGetPolicy())\r
+            {\r
+                NSPushQueue(TOPIC_SCHEDULER, TASK_POST_TOPIC,\r
+                        NSCopyOCEntityHandlerRequest(entityHandlerRequest));\r
+                ehResult = OC_EH_OK;\r
+            }\r
         }\r
         else\r
         {\r
@@ -265,7 +271,7 @@ OCEntityHandlerResult NSEntityHandlerTopicCb(OCEntityHandlerFlag flag,
     response.requestHandle = entityHandlerRequest->requestHandle;\r
     response.resourceHandle = entityHandlerRequest->resource;\r
     response.persistentBufferFlag = 0;\r
-    response.ehResult = OC_EH_OK;\r
+    response.ehResult = ehResult;\r
     response.payload = (OCPayload *) NULL;\r
 \r
     if (OCDoResponse(&response) != OC_STACK_OK)\r