X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=service%2Fnotification%2Fsrc%2Fprovider%2FNSProviderResource.c;h=494b6705ad65446e770bf7da36bcdb7d53821ce8;hb=refs%2Ftags%2Fsubmit%2Ftizen%2F20171214.102437;hp=a056d68827f26f317026cec947eee2ac3cab8f7f;hpb=b23ebaa7fb6716971cc13df2f9f70771a50e87d6;p=platform%2Fupstream%2Fiotivity.git diff --git a/service/notification/src/provider/NSProviderResource.c b/service/notification/src/provider/NSProviderResource.c index a056d68..494b670 100644 --- a/service/notification/src/provider/NSProviderResource.c +++ b/service/notification/src/provider/NSProviderResource.c @@ -20,23 +20,24 @@ #include "NSProviderResource.h" #include +#include "rd_client.h" NSNotificationResource NotificationResource; NSMessageResource NotificationMessageResource; NSSyncResource NotificationSyncResource; NSTopicResource NotificationTopicResource; -#if(defined WITH_CLOUD && defined RD_CLIENT) +#if (defined WITH_CLOUD) #define DEFAULT_CONTEXT_VALUE 0x99 OCStackApplicationResult NSHandlePublishCb(void *ctx, OCDoHandle handle, OCClientResponse *clientResponse) { (void) handle; - if(ctx != (void *)DEFAULT_CONTEXT_VALUE) + if (ctx != (void *)DEFAULT_CONTEXT_VALUE) { NS_LOG(DEBUG, "Invalid Publish callback received"); - } + } NS_LOG_V(DEBUG, "Publish resource response received code: %d", clientResponse->result); @@ -45,17 +46,16 @@ OCStackApplicationResult NSHandlePublishCb(void *ctx, OCDoHandle handle, NSResult NSPublishResourceToCloud(char *serverAddress) { - NS_LOG(DEBUG, "NSPublishResourceToCloud - IN"); - NS_LOG_V(DEBUG, "Remote Server Address: %s", serverAddress); + NS_LOG_V(INFO_PRIVATE, "Remote Server Address: %s", serverAddress); OCCallbackData cbData; cbData.cb = NSHandlePublishCb; cbData.context = (void *)DEFAULT_CONTEXT_VALUE; cbData.cd = NULL; - OCResourceHandle resourceHandles[1] = {NotificationResource.handle}; - OCStackResult res = OCRDPublish(serverAddress, CT_ADAPTER_TCP, resourceHandles, 1, + OCResourceHandle resourceHandles[1] = { NotificationResource.handle }; + OCStackResult res = OCRDPublish(NULL, serverAddress, CT_ADAPTER_TCP, resourceHandles, 1, &cbData, OC_LOW_QOS); if (res != OC_STACK_OK) @@ -68,16 +68,18 @@ NSResult NSPublishResourceToCloud(char *serverAddress) } #endif - NSResult NSCreateResource(char *uri) { NS_LOG(DEBUG, "NSCreateResource - IN"); + if (!uri) { - NS_LOG(NS_ERROR, "Resource URI cannot be NULL"); + NS_LOG(ERROR, "Resource URI cannot be NULL"); return NS_ERROR; } + uint8_t resourceProperties; + if (strcmp(uri, NS_ROOT_URI) == 0) { NotificationResource.policy = true; @@ -88,10 +90,28 @@ NSResult NSCreateResource(char *uri) NotificationResource.version = VERSION; NotificationResource.handle = NULL; - if (OCCreateResource(&NotificationResource.handle, NS_ROOT_TYPE, NS_DEFAULT_INTERFACE, - NS_ROOT_URI, NSEntityHandlerNotificationCb, NULL, OC_DISCOVERABLE) != OC_STACK_OK) + if (NSGetResourceSecurity()) { - NS_LOG(NS_ERROR, "Fail to Create Notification Resource"); + NS_LOG(DEBUG, "Create secured resource"); + resourceProperties = OC_DISCOVERABLE | OC_SECURE; + } + else + { + resourceProperties = OC_DISCOVERABLE; + } + + if (OCCreateResource(&NotificationResource.handle, NS_ROOT_TYPE, NS_INTERFACE_BASELINE, + NS_ROOT_URI, NSEntityHandlerNotificationCb, NULL, + resourceProperties) != OC_STACK_OK) + { + NS_LOG(ERROR, "Fail to Create Notification Resource"); + return NS_ERROR; + } + + if (OCBindResourceInterfaceToResource(NotificationResource.handle, NS_INTERFACE_READ) + != OC_STACK_OK) + { + NS_LOG(ERROR, "Fail to bind Notification Resource Type"); return NS_ERROR; } } @@ -110,26 +130,61 @@ NSResult NSCreateResource(char *uri) NotificationMessageResource.topicName = NULL; NotificationMessageResource.mediaContents = NULL; + if (NSGetResourceSecurity()) + { + NS_LOG(DEBUG, "Create secured resource"); + resourceProperties = OC_OBSERVABLE | OC_SECURE; + } + else + { + resourceProperties = OC_OBSERVABLE; + } + if (OCCreateResource(&NotificationMessageResource.handle, NS_COLLECTION_MESSAGE_TYPE, - NS_DEFAULT_INTERFACE, NS_COLLECTION_MESSAGE_URI, NSEntityHandlerMessageCb, NULL, - OC_OBSERVABLE) != OC_STACK_OK) + NS_INTERFACE_BASELINE, NS_COLLECTION_MESSAGE_URI, NSEntityHandlerMessageCb, NULL, + resourceProperties) != OC_STACK_OK) { - NS_LOG(NS_ERROR, "Fail to Create Notification Message Resource"); + NS_LOG(ERROR, "Fail to Create Notification Message Resource"); + return NS_ERROR; + } + + if (OCBindResourceInterfaceToResource(NotificationMessageResource.handle, NS_INTERFACE_READ) + != OC_STACK_OK) + { + NS_LOG(ERROR, "Fail to bind Notification Message Resource Type"); return NS_ERROR; } } else if (strcmp(uri, NS_COLLECTION_SYNC_URI) == 0) { - NotificationSyncResource.id = NULL; + NotificationSyncResource.messageId = 0; (NotificationSyncResource.providerId)[0] = '\0'; NotificationSyncResource.state = NULL; NotificationSyncResource.handle = NULL; + if (NSGetResourceSecurity()) + { + NS_LOG(DEBUG, "Create secured resource"); + resourceProperties = OC_OBSERVABLE | OC_SECURE; + } + else + { + resourceProperties = OC_OBSERVABLE; + } + if (OCCreateResource(&(NotificationSyncResource.handle), NS_COLLECTION_SYNC_TYPE, - NS_DEFAULT_INTERFACE, NS_COLLECTION_SYNC_URI, NSEntityHandlerSyncCb, NULL, - OC_OBSERVABLE) != OC_STACK_OK) + NS_INTERFACE_BASELINE, NS_COLLECTION_SYNC_URI, NSEntityHandlerSyncCb, NULL, + resourceProperties) != OC_STACK_OK) + { + NS_LOG(ERROR, "Fail to Create Notification Sync Resource"); + return NS_ERROR; + } + + if (OCBindResourceInterfaceToResource(NotificationSyncResource.handle, + NS_INTERFACE_READWRITE) + != OC_STACK_OK) { - NS_LOG(NS_ERROR, "Fail to Create Notification Sync Resource"); + NS_LOG(ERROR, "Fail to bind Notification Sync Resource Type"); return NS_ERROR; } } @@ -140,11 +195,29 @@ NSResult NSCreateResource(char *uri) NotificationTopicResource.TopicList = NULL; NotificationTopicResource.handle = NULL; + if (NSGetResourceSecurity()) + { + NS_LOG(DEBUG, "Create secured resource"); + resourceProperties = OC_RES_PROP_NONE | OC_SECURE; + } + else + { + resourceProperties = OC_RES_PROP_NONE; + } + if (OCCreateResource(&(NotificationTopicResource.handle), NS_COLLECTION_TOPIC_TYPE, - NS_DEFAULT_INTERFACE, NS_COLLECTION_TOPIC_URI, NSEntityHandlerTopicCb, NULL, - OC_DISCOVERABLE) != OC_STACK_OK) + NS_INTERFACE_BASELINE, NS_COLLECTION_TOPIC_URI, NSEntityHandlerTopicCb, NULL, + resourceProperties) != OC_STACK_OK) + { + NS_LOG(ERROR, "Fail to Create Notification Sync Resource"); + return NS_ERROR; + } + + if (OCBindResourceInterfaceToResource(NotificationTopicResource.handle, + NS_INTERFACE_READWRITE) + != OC_STACK_OK) { - NS_LOG(NS_ERROR, "Fail to Create Notification Sync Resource"); + NS_LOG(ERROR, "Fail to bind Notification Topic Resource Type"); return NS_ERROR; } }