The changes are about cloud notification service on provider side.
The provider service publishes its resource through cloud interface.
An application is required to call NSEnableRemoteSerivce(..) API
to publish it after login process.
Change-Id: I271c81858f2d1e63bc49ef0fa0012dde48a9c11a
Signed-off-by: ch79.cho <ch79.cho@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/9213
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
#include <stdio.h>\r
#include <stdbool.h>\r
#include <stdlib.h>\r
+#include <unistd.h>\r
#include "NSCommon.h"\r
#include "NSProviderInterface.h"\r
#include "logger.h"\r
#include "oic_string.h"\r
#include "oic_malloc.h"\r
\r
-#define TAG "notiProviderExample"\r
+#define TAG "NSProviderExample"\r
\r
extern char *strdup(const char *s);\r
\r
printf("NS_APP Sync State: %d\n", sync->state);\r
}\r
\r
+OCStackApplicationResult CloudLoginoutCallback(void *ctx,\r
+ OCDoHandle handle, OCClientResponse *clientResponse)\r
+{\r
+ int CtxValue = 0x99;\r
+ if (ctx != (void *)CtxValue)\r
+ {\r
+ OIC_LOG(INFO, TAG, "Invalid Cloud Login/out callback received");\r
+ }\r
+\r
+ OIC_LOG(INFO, TAG, "Login/out response received");\r
+\r
+ if (clientResponse->payload != NULL &&\r
+ clientResponse->payload->type == PAYLOAD_TYPE_REPRESENTATION)\r
+ {\r
+ OIC_LOG(INFO, TAG, "PAYLOAD_TYPE_REPRESENTATION received");\r
+\r
+ OCRepPayloadValue *val = ((OCRepPayload *)clientResponse->payload)->values;\r
+\r
+ OIC_LOG(INFO, TAG, "Get payload values");\r
+ while (val)\r
+ {\r
+ OIC_LOG_V(INFO, TAG, "key: %s / Value: %s", val->name, val->str);\r
+ val = val->next;\r
+ }\r
+\r
+ char *serverAddress = "coap+tcp://52.69.149.85:5683";\r
+ NSProviderEnableRemoteService(serverAddress);\r
+ }\r
+\r
+ return OC_STACK_KEEP_TRANSACTION;\r
+}\r
+\r
+FILE* server_fopen(const char *path, const char *mode)\r
+{\r
+ (void)path;\r
+ return fopen("oic_ns_provider_db.dat", mode);\r
+}\r
+\r
int main()\r
{\r
int num;\r
pthread_t processThread;\r
\r
+ // cloud host address\r
+ const char *host = "coap+tcp://52.69.149.85:5683";\r
+ // cloud auth session\r
+ const char *auth_session = "gZDRuDyYapZXIcrs";\r
+\r
+\r
OIC_LOG(INFO, TAG, "NSStartProvider()");\r
\r
+ // open oic_db\r
+ static OCPersistentStorage ps = {server_fopen, fread, fwrite, fclose, unlink};\r
+ OCRegisterPersistentStorageHandler(&ps);\r
+\r
if (OCInit(NULL, 0, OC_CLIENT_SERVER) != OC_STACK_OK)\r
{\r
OIC_LOG(INFO, TAG, "OCStack init error");\r
return 0;\r
}\r
\r
- pthread_create(&processThread, NULL, OCProcessThread, NULL);\r
+ pthread_create(&processThread, NULL, OCProcessThread, unlink);\r
\r
while (!isExit)\r
{\r
printf("4. NSRead \n");\r
printf("5. NSStopProvider() \n");\r
printf("6. NSGetConsumerList \n");\r
- //printf("7. startPresence \n");\r
- //printf("8. stopPresence \n");\r
+ printf("11. NSCloudLogin \n");\r
+ printf("12. NSCloudLogout \n");\r
printf("0. Exit() \n");\r
\r
printf("input : ");\r
case 6:\r
OIC_LOG(INFO, TAG, "NSGetConsumerList");\r
break;\r
- case 7:\r
- OIC_LOG(INFO, TAG, "NSStartPresence - not working");\r
- //NSTestStartPresence();\r
+ case 11:\r
+ OIC_LOG(INFO, TAG, "NSCloudLogin");\r
+\r
+ NSCloudLogin(host, auth_session, CloudLoginoutCallback);\r
+ OIC_LOG(INFO, TAG, "OCCloudLogin requested");\r
break;\r
- case 8:\r
- OIC_LOG(INFO, TAG, "NSStopPresence- not working");\r
- //NSTestStopPresence();\r
+ case 12:\r
+ OIC_LOG(INFO, TAG, "NSCloudLogout");\r
+\r
+ NSCloudLogout(host, auth_session, CloudLoginoutCallback);\r
+ OIC_LOG(INFO, TAG, "OCCloudLogout requested");\r
break;\r
case 0:\r
NSStopProvider();\r
NSResult NSStopProvider();\r
\r
/**\r
+ * Request to publish resource to cloud server\r
+ * @param[in] server address combined with IP address and port number using delimiter :\r
+ * @return ::NS_OK or result code of NSResult\r
+ */\r
+NSResult NSProviderEnableRemoteService(char *serverAddress);\r
+\r
+/**\r
+ * Request to cancel remote service using cloud server\r
+ * @param[in] server address combined with IP address and port number using delimiter :\r
+ * @return ::NS_OK or result code of NSResult\r
+ */\r
+NSResult NSProviderDisableRemoteService(char *serverAddress);\r
+\r
+/**\r
* Send notification message to all subscribers\r
* @param[in] message Notification message including id, title, contentText\r
* @return ::NS_OK or result code of NSResult\r
--- /dev/null
+//******************************************************************
+//
+// Copyright 2016 Samsung Electronics All Rights Reserved.
+//
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#include "NSCloudConnector.h"
+#include "NSUtil.h"
+
+#include <stdarg.h>
+#include <stdlib.h>
+
+#include "oic_string.h"
+#include "oic_malloc.h"
+
+#include "ocpayload.h"
+
+#include "rdpayload.h"
+/*
+#define OC_RD_PUBLISH_TTL 86400
+#define DEFAULT_CONTEXT_VALUE 0x99
+
+#define DEFAULT_COAP_TCP_HOST "coap+tcp://"
+#define DEFAULT_COAP_TCP_PORT 5683
+
+#define DEFAULT_COAP_TCP_SECURE_HOST "coaps+tcp://"
+#define DEFAULT_COAP_TCP_SECURE_PORT 5864
+
+#define DEFAULT_AUTH_REGISTER_LOGIN "/oic/auth/?reqtype=register"
+#define DEFAULT_AUTH_LOGIN "/oic/auth/?reqtype=login"
+#define DEFAULT_AUTH_LOGOUT "/oic/auth/?reqtype=logout"
+*/
+static OCStackResult createStringLL(uint8_t numElements, OCResourceHandle handle,
+ const char *(*getValue)(OCResourceHandle handle, uint8_t i), OCStringLL **stringLL)
+{
+ for (uint8_t i = 0; i < numElements; ++i)
+ {
+ const char *value = getValue(handle, i);
+ if (!*stringLL)
+ {
+ *stringLL = (OCStringLL *)OICCalloc(1, sizeof(OCStringLL));
+ if (!*stringLL)
+ {
+ return OC_STACK_NO_MEMORY;
+ }
+ (*stringLL)->value = OICStrdup(value);
+ if (!(*stringLL)->value)
+ {
+ return OC_STACK_NO_MEMORY;
+ }
+ }
+ else
+ {
+ OCStringLL *cur = *stringLL;
+ while (cur->next)
+ {
+ cur = cur->next;
+ }
+ cur->next = (OCStringLL *)OICCalloc(1, sizeof(OCStringLL));
+ if (!cur->next)
+ {
+ return OC_STACK_NO_MEMORY;
+ }
+ cur->next->value = OICStrdup(value);
+ if (!cur->next->value)
+ {
+ return OC_STACK_NO_MEMORY;
+ }
+ }
+ }
+ return OC_STACK_OK;
+}
+
+OCStackResult NSCloudRegisterLogin(const char *host, const char *auth_provider,
+ const char *auth_code, OCClientResponseHandler response)
+{
+ char targetUri[MAX_URI_LENGTH * 2] = { 0, };
+ snprintf(targetUri, MAX_URI_LENGTH * 2, "%s%s", host, DEFAULT_AUTH_REGISTER_LOGIN);
+
+ OCCallbackData cbData;
+ memset(&cbData, 0, sizeof(OCCallbackData));
+ cbData.cb = response;
+ cbData.cd = NULL;
+ cbData.context = (void *)DEFAULT_CONTEXT_VALUE;
+
+ OCRepPayload *registerPayload = OCRepPayloadCreate();
+ if (!registerPayload)
+ {
+ goto no_memory;
+ }
+
+ OCRepPayloadSetPropString(registerPayload, "authprovider", auth_provider);
+ OCRepPayloadSetPropString(registerPayload, "authcode", auth_code);
+
+ return OCDoResource(NULL, OC_REST_POST, targetUri, NULL, (OCPayload *)registerPayload,
+ CT_ADAPTER_TCP, OC_LOW_QOS, &cbData, NULL, 0);
+
+no_memory:
+ OCRepPayloadDestroy(registerPayload);
+ return OC_STACK_NO_MEMORY;
+}
+
+OCStackResult NSCloudLoginout(const char *host, const char *query, const char *auth_session,
+ OCClientResponseHandler response)
+{
+ char targetUri[MAX_URI_LENGTH * 2] = { 0, };
+ snprintf(targetUri, MAX_URI_LENGTH * 2, "%s%s", host, query);
+
+ OCCallbackData cbData;
+ memset(&cbData, 0, sizeof(OCCallbackData));
+ cbData.cb = response;
+ cbData.cd = NULL;
+ cbData.context = (void *)DEFAULT_CONTEXT_VALUE;
+
+ OCRepPayload *loginoutPayload = OCRepPayloadCreate();
+ if (!loginoutPayload)
+ {
+ goto no_memory;
+ }
+
+ OCRepPayloadSetPropString(loginoutPayload, "session", auth_session);
+
+ return OCDoResource(NULL, OC_REST_POST, targetUri, NULL, (OCPayload *)loginoutPayload,
+ CT_ADAPTER_TCP, OC_LOW_QOS, &cbData, NULL, 0);
+
+no_memory:
+ OCRepPayloadDestroy(loginoutPayload);
+ return OC_STACK_NO_MEMORY;
+}
+
+
+OCStackResult NSCloudLogin(const char *host, const char *auth_session,
+ OCClientResponseHandler response)
+{
+ return NSCloudLoginout(host, DEFAULT_AUTH_LOGIN, auth_session, response);
+}
+
+OCStackResult NSCloudLogout(const char *host, const char *auth_session,
+ OCClientResponseHandler response)
+{
+ return NSCloudLoginout(host, DEFAULT_AUTH_LOGOUT, auth_session, response);
+}
+
+
+static unsigned char gInstanceId[37] = {0, };
+OCStackResult NSCloudPublish(const char *host, const char *query,
+ OCClientResponseHandler response, int numArg, ...)
+{
+ char targetUri[MAX_URI_LENGTH * 2] = { 0, };
+ snprintf(targetUri, MAX_URI_LENGTH * 2, "%s%s", host, query);
+
+ // Gather all resources locally and do publish
+ OCCallbackData cbData;
+ memset(&cbData, 0, sizeof(OCCallbackData));
+ cbData.cb = response;
+ cbData.cd = NULL;
+ cbData.context = (void *)DEFAULT_CONTEXT_VALUE;
+
+ OCTagsPayload *tagsPayload = NULL;
+ OCLinksPayload *linksPayload = NULL;
+ OCStringLL *rt = NULL;
+ OCStringLL *itf = NULL;
+ OCStringLL *mt = NULL;
+
+ OCRDPayload *rdPayload = OCRDPayloadCreate();
+ if (!rdPayload)
+ {
+ goto no_memory;
+ }
+
+ const unsigned char *id = (unsigned char *)OCGetServerInstanceIDString();
+ NS_LOG_V(DEBUG, "DeviceID: %s", id);
+ tagsPayload = OCCopyTagsResources(NULL, id,
+ NULL, OC_DISCOVERABLE, 0, 0, NULL, NULL, OC_RD_PUBLISH_TTL);
+ if (!tagsPayload)
+ {
+ goto no_memory;
+ }
+
+ va_list arguments;
+ va_start(arguments, numArg);
+
+ for (int j = 0; j < numArg; j++)
+ {
+ OCResourceHandle handle = va_arg(arguments, OCResourceHandle);
+ if (handle)
+ {
+ rt = itf = mt = NULL;
+ const char *uri = OCGetResourceUri(handle);
+ uint8_t numElement;
+ if (OC_STACK_OK == OCGetNumberOfResourceTypes(handle, &numElement))
+ {
+ OCStackResult res = createStringLL(numElement, handle, OCGetResourceTypeName, &rt);
+ if (res != OC_STACK_OK || !rt)
+ {
+ goto no_memory;
+ }
+ }
+
+ if (OC_STACK_OK == OCGetNumberOfResourceInterfaces(handle, &numElement))
+ {
+ OCStackResult res = createStringLL(numElement, handle, OCGetResourceInterfaceName, &itf);
+ if (res != OC_STACK_OK || !itf)
+ {
+ goto no_memory;
+ }
+ }
+
+ mt = (OCStringLL *)OICCalloc(1, sizeof(OCStringLL));
+ if (!mt)
+ {
+ goto no_memory;
+ }
+ mt->value = OICStrdup("application/cbor");
+ if (!mt->value)
+ {
+ goto no_memory;
+ }
+
+ if (!linksPayload)
+ {
+ linksPayload = OCCopyLinksResources(uri, rt, itf, NULL, 0, NULL,
+ NULL, j, mt);;
+ if (!linksPayload)
+ {
+ goto no_memory;
+ }
+ }
+ else
+ {
+ OCLinksPayload *temp = linksPayload;
+ while (temp->next)
+ {
+ temp = temp->next;
+ }
+ temp->next = OCCopyLinksResources(uri, rt, itf, NULL, 0, NULL,
+ NULL, j, mt);
+ if (!temp->next)
+ {
+ goto no_memory;
+ }
+ }
+ OCFreeOCStringLL(rt);
+ OCFreeOCStringLL(itf);
+ OCFreeOCStringLL(mt);
+ }
+ }
+ va_end(arguments);
+
+ rdPayload->rdPublish = OCCopyCollectionResource(tagsPayload, linksPayload);
+ if (!rdPayload->rdPublish)
+ {
+ goto no_memory;
+ }
+
+ return OCDoResource(NULL, OC_REST_POST, targetUri, NULL, (OCPayload *)rdPayload,
+ CT_ADAPTER_TCP, OC_LOW_QOS, &cbData, NULL, 0);
+
+no_memory:
+ va_end(arguments);
+ if (rt)
+ {
+ OCFreeOCStringLL(rt);
+ }
+ if (itf)
+ {
+ OCFreeOCStringLL(itf);
+ }
+ if (mt)
+ {
+ OCFreeOCStringLL(mt);
+ }
+ if (tagsPayload)
+ {
+ OCFreeTagsResource(tagsPayload);
+ }
+ if (linksPayload)
+ {
+ OCFreeLinksResource(linksPayload);
+ }
+ OCRDPayloadDestroy(rdPayload);
+ return OC_STACK_NO_MEMORY;
+}
--- /dev/null
+//******************************************************************
+//
+// Copyright 2016 Samsung Electronics All Rights Reserved.
+//
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+#ifndef _CLOUD_CONNECTOR_H_
+#define _CLOUD_CONNECTOR_H_
+
+#include "ocstack.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif // __cplusplus
+
+#define CLOUD_IP "52.69.149.85"
+#define CLOUD_PORT "5683"
+
+#define OC_RD_PUBLISH_TTL 86400
+#define DEFAULT_CONTEXT_VALUE 0x99
+
+#define DEFAULT_COAP_TCP_HOST "coap+tcp://"
+#define DEFAULT_COAP_TCP_PORT 5683
+
+#define DEFAULT_COAP_TCP_SECURE_HOST "coaps+tcp://"
+#define DEFAULT_COAP_TCP_SECURE_PORT 5864
+
+#define DEFAULT_AUTH_REGISTER_LOGIN "/oic/auth/?reqtype=register"
+#define DEFAULT_AUTH_LOGIN "/oic/auth/?reqtype=login"
+#define DEFAULT_AUTH_LOGOUT "/oic/auth/?reqtype=logout"
+
+OCStackResult NSCloudRegisterLogin(const char *host, const char *auth_provider,
+ const char *auth_code, OCClientResponseHandler response);
+OCStackResult NSCloudLogin(const char *host, const char *auth_session,
+ OCClientResponseHandler response);
+OCStackResult NSCloudLogout(const char *host, const char *auth_session,
+ OCClientResponseHandler response);
+OCStackResult NSCloudPublish(const char *host, const char *query,
+ OCClientResponseHandler response, int numArg, ...);
+
+#ifdef __cplusplus
+}
+#endif // __cplusplus
+
+#endif
typedef enum eTaskType
{
TASK_REGISTER_RESOURCE = 1000,
+ TASK_PUBLISH_RESOURCE = 1001,
TASK_START_PRESENCE = 2000,
TASK_STOP_PRESENCE = 2001,
NS_LOG(DEBUG, "CASE TASK_REGISTER_RESOURCE : ");\r
NSRegisterResource();\r
break;\r
+ case TASK_PUBLISH_RESOURCE:\r
+ NS_LOG(DEBUG, "CASE TASK_PUBLISH_PESOURCE : ");\r
+ NSPublishResourceToCloud((char*)node->taskData);\r
+ break;\r
default:\r
break;\r
}\r
return NS_OK;\r
}\r
\r
+NSResult NSProviderEnableRemoteService(char *serverAddress)\r
+{\r
+ NS_LOG(DEBUG, "NSProviderEnableRemoteService - IN");\r
+ pthread_mutex_lock(&nsInitMutex);\r
+ \r
+ if(!initProvider)\r
+ {\r
+ NS_LOG(DEBUG, "Provider service has not been started yet");\r
+ return NS_FAIL;\r
+ }\r
+\r
+ NS_LOG_V(DEBUG, "Remote server address: %s", serverAddress);\r
+ NSPushQueue(DISCOVERY_SCHEDULER, TASK_PUBLISH_RESOURCE, serverAddress);\r
+\r
+ pthread_mutex_unlock(&nsInitMutex);\r
+ NS_LOG(DEBUG, "NSProviderEnableRemoteService - OUT");\r
+ return NS_OK;\r
+}\r
+\r
+NSResult NSProviderDisableRemoteService(char *serverAddress)\r
+{\r
+ NS_LOG(DEBUG, "NSProviderDisableRemoteService - IN");\r
+ pthread_mutex_lock(&nsInitMutex);\r
+\r
+ if(!initProvider)\r
+ {\r
+ NS_LOG(DEBUG, "Provider service has not been started yet");\r
+ return NS_FAIL;\r
+ }\r
+ NS_LOG_V(DEBUG, "Remote server address: %s", serverAddress);\r
+\r
+ pthread_mutex_unlock(&nsInitMutex);\r
+ NS_LOG(DEBUG, "NSProviderDisableRemoteService - OUT");\r
+ return NS_OK;\r
+}\r
+\r
NSResult NSSendMessage(NSMessage *msg)\r
{\r
NS_LOG(DEBUG, "NSSendNotification - IN");\r
bool connected)\r
{\r
\r
- // should be implementation\r
(void)adapter;\r
(void)remote_address;\r
\r
\r
// Start Presence\r
NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);\r
+\r
+ if(adapter == CA_ADAPTER_TCP)\r
+ {\r
+ NS_LOG_V(DEBUG, "TCP Connected remote address: %s", remote_address);\r
+ }\r
+ }\r
+ else\r
+ {\r
+\r
+ NS_LOG(DEBUG, "DISCONNECTED");\r
+\r
+ // Set Connection State\r
+ NSSetProviderConnectionState(DISCONNECTED);\r
+\r
+ if(adapter == CA_ADAPTER_TCP)\r
+ {\r
+ NS_LOG_V(DEBUG, "TCP Disconnected remote address: %s", remote_address);\r
+ }\r
}\r
\r
NS_LOG(DEBUG, "NSProviderConnectionStateListener - OUT");\r
\r
void NSProviderAdapterStateListener(CATransportAdapter_t adapter, bool enabled)\r
{\r
- // should be implementation\r
(void)adapter;\r
\r
NS_LOG(DEBUG, "NSProviderAdapterStateListener - IN");\r
// Start Presence\r
NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);\r
}\r
+ else\r
+ {\r
+\r
+ NS_LOG(DEBUG, "DISCONNECTED");\r
+\r
+ // Set Connection State\r
+ NSSetProviderConnectionState(DISCONNECTED);\r
+ }\r
\r
NS_LOG(DEBUG, "NSProviderAdapterStateListener - OUT");\r
}\r
#include "oic_malloc.h"\r
#include "NSUtil.h"\r
#include "NSStorageAdapter.h"\r
+#include "NSCloudConnector.h"\r
\r
OCEntityHandlerResult NSEntityHandlerNotificationCb(OCEntityHandlerFlag flag,\r
OCEntityHandlerRequest *entityHandlerRequest, void* callback);\r
NSMessageResource NotificationMessageResource;
NSSyncResource NotificationSyncResource;
+OCStackApplicationResult NSHandlePublishCb(void *ctx, OCDoHandle handle,
+ OCClientResponse *clientResponse)
+{
+ 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);
+
+ return OC_STACK_KEEP_TRANSACTION;
+}
+
+NSResult NSPublishResourceToCloud(char *serverAddress)
+{
+
+ NS_LOG(DEBUG, "NSPublishResourceToCloud - IN");
+ NS_LOG_V(DEBUG, "Cloud address: %s", serverAddress);
+
+ const char * publishQuery = "/oic/rd?rt=oic.wk.rdpub";
+
+ if (NSCloudPublish(serverAddress, publishQuery, &NSHandlePublishCb, 1,
+ NotificationResource.handle) != OC_STACK_OK)
+ {
+ NS_LOG(DEBUG, "Unable to publish resources to cloud");
+ }
+
+ NS_LOG(DEBUG, "NSPublishResourceToCloud - OUT");
+ return NS_OK;
+}
+
NSResult NSCreateResource(char *uri)
{
NS_LOG(DEBUG, "NSCreateResource - IN");
NSResult NSCreateResource(char *uri);
+NSResult NSPublishResourceToCloud(char *host);
+
NSResult NSRegisterResource();
NSResult NSUnRegisterResource();
NS_LOG(DEBUG, "NSInitProviderInfo");\r
\r
providerInfo = (NSProviderInfo *) OICMalloc(sizeof(NSProviderInfo));\r
- NSGenerateUUIDStr(providerInfo->providerId);\r
+ const char * generatedUuid = (char *)OCGetServerInstanceIDString();\r
+ NS_LOG_V(DEBUG, "Generate Provider ID: %s", generatedUuid);\r
+ OICStrcpy(providerInfo->providerId, strlen(generatedUuid), generatedUuid);\r
+\r
providerInfo->providerName = NULL;\r
}\r
\r
\r
NSProviderInfo * NSGetProviderInfo()\r
{\r
- NS_LOG(DEBUG, "Change Connection State");\r
+ NS_LOG_V(DEBUG, "ProviderInfo: %s", providerInfo->providerId);\r
\r
return providerInfo;\r
}\r