#include "NSProviderResource.h"
#include <string.h>
+#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);
{
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)
}
#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;
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(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(NS_ERROR, "Fail to Create Notification Resource");
+ NS_LOG(ERROR, "Fail to bind Notification Resource Type");
return NS_ERROR;
}
}
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(ERROR, "Fail to Create Notification Message Resource");
+ return NS_ERROR;
+ }
+
+ if (OCBindResourceInterfaceToResource(NotificationMessageResource.handle, NS_INTERFACE_READ)
+ != OC_STACK_OK)
{
- NS_LOG(NS_ERROR, "Fail to Create Notification Message Resource");
+ 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;
}
}
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;
}
}