Restrict topic list control when Provider does not have permission.
authorjaesick.shin <jaesick.shin@samsung.com>
Tue, 23 Aug 2016 09:44:00 +0000 (18:44 +0900)
committerUze Choi <uzchoi@samsung.com>
Wed, 24 Aug 2016 06:46:37 +0000 (06:46 +0000)
If provider does not have the comsumer subscription accept capability
following topic related API should not work.
1. NSProviderSelectTopic
2. NSProviderUnselectTopic

Change-Id: I197a60a0aae5eef3226f3766f1b793594628a9f9
Signed-off-by: jaesick.shin <jaesick.shin@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/10795
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
service/notification/src/provider/NSProviderInterface.c

index 6c9331f..7648278 100644 (file)
@@ -320,10 +320,11 @@ NSResult NSProviderSelectTopic(char *consumerId, char *topicName)
     NS_LOG(DEBUG, "NSProviderSelectTopics - IN");\r
     pthread_mutex_lock(&nsInitMutex);\r
 \r
-    if(!consumerId || !topicName)\r
+    if(!consumerId || !topicName || !NSGetPolicy())\r
     {\r
+        NS_LOG(DEBUG, "consumer id should be set for topic subscription or "\r
+                "Configuration must set to true.");\r
         pthread_mutex_unlock(&nsInitMutex);\r
-        NS_LOG(DEBUG, "consumer id should be set for topic subscription");\r
         return NS_FAIL;\r
     }\r
 \r
@@ -345,9 +346,10 @@ NSResult NSProviderUnselectTopic(char *consumerId, char *topicName)
     NS_LOG(DEBUG, "NSProviderUnselectTopics - IN");\r
     pthread_mutex_lock(&nsInitMutex);\r
 \r
-    if(!consumerId || !topicName)\r
+    if(!consumerId || !topicName || !NSGetPolicy())\r
     {\r
-        NS_LOG(DEBUG, "consumer id should be set for topic subscription");\r
+        NS_LOG(DEBUG, "consumer id should be set for topic subscription or "\r
+                "Configuration must set to true.");\r
         pthread_mutex_unlock(&nsInitMutex);\r
         return NS_FAIL;\r
     }\r