1. modify logic about related NSMessage, NSSynInfo of struct.
2. Added NSGeneratedUUIDStr function (providerid, consumer id)
3. Added NSGetValueFromQuery function (related using the queryparam)
and modified logic of 2,3
fifth patch included
apply to resource protocol about response.
Change-Id: I360c3d9a3f1021a74bb2ad8484355e7201c27a89
Signed-off-by: jaesick.shin <jaesick.shin@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/8659
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
}\r
}\r
\r
- LOGI("consumer ID : %s\n", consumer->mDeviceId);\r
- jstring consumerId = (*env)->NewStringUTF(env, consumer->mDeviceId);\r
+ LOGI("consumer ID : %s\n", consumer->consumerId);\r
+ jstring consumerId = (*env)->NewStringUTF(env, consumer->consumerId);\r
\r
jclass cls = (*env)->GetObjectClass(env, g_obj_subscriptionListener);\r
if (!cls)\r
{\r
OIC_LOG(INFO, TAG, "consumer requested to subscribe");\r
\r
- printf("NS_APP Consumer Address ID: %s\n", consumer->mAddress);\r
- printf("NS_APP Consumer Device ID: %s\n", consumer->mDeviceId);\r
+ printf("NS_APP Consumer Device ID: %s\n", consumer->consumerId);\r
\r
NSAccept(consumer, true);\r
}\r
\r
NSMessage * msg = (NSMessage *)OICMalloc(sizeof(NSMessage));\r
\r
- msg->title = strdup(title);\r
+ msg->title = OICStrdup(title);\r
msg->contentText = OICStrdup(body);\r
msg->sourceName = OICStrdup("OCF");\r
\r
*/
typedef enum
{
- NS_MESSAGE_ALERT = 0,
- NS_MESSAGE_NOTICE = 1,
- NS_MESSAGE_EVENT = 2,
- NS_MESSAGE_INFO = 3,
+ NS_MESSAGE_ALERT = 1,
+ NS_MESSAGE_NOTICE = 2,
+ NS_MESSAGE_EVENT = 3,
+ NS_MESSAGE_INFO = 4,
} NSMessageType;
*/
typedef struct
{
- char * mDeviceId;
- char * mAddress;
+ char consumerId[37];
} NSConsumer;
{
//Mandatory
uint64_t messageId;
- char * providerId;
+ char providerId[37];
//optional
NSMessageType type;
char * title;
char * contentText;
char * sourceName;
- NSMediaContents mediaContents;
+ NSMediaContents * mediaContents;
} NSMessage;
typedef struct
{
uint64_t messageId;
- char * providerId;
+ char providerId[37];
NSSyncType state;
} NSSyncInfo;
* synchronization\r
* @param[in] sync Synchronization information of the notification message\r
*/\r
-typedef void (*NSSyncCallback)(NSSyncInfo *);\r
+typedef void (*NSProviderSyncInfoCallback)(NSSyncInfo *);\r
\r
/**\r
* Initialize notification service for provider\r
* @return ::NS_OK or result code of NSResult\r
*/\r
NSResult NSStartProvider(NSAccessPolicy policy, NSSubscribeRequestCallback subscribeRequestCb,\r
- NSSyncCallback syncCb);\r
+ NSProviderSyncInfoCallback syncCb);\r
\r
/**\r
* Terminate notification service for provider\r
* @param[in] message Notification message to synchronize the status\r
* @return ::NS_OK or result code of NSResult\r
*/\r
-NSResult NSReadCheck(NSMessage *);\r
+NSResult NSProviderSendSyncInfo(uint64_t messageId, NSSyncType type);\r
\r
#ifdef __cplusplus\r
}\r
}
#endif
-#define NS_TAG "IOT_NOTI"
+#define NS_TAG "IOT_NOTI"
// SCHEDULE //
-#define THREAD_COUNT 4
+#define THREAD_COUNT 4
// NOTIOBJ //
-#define NOTIOBJ_TITLE_KEY "title"
-#define NOTIOBJ_ID_KEY "id"
-#define NOTOOBJ_CONTENT_KEY "contentText"
-
-#define DISCOVERY_TAG "NS_PROVIDER_DISCOVERY"
-#define SUBSCRIPTION_TAG "NS_PROVIDER_SUBSCRIPTION"
-#define INTERFACE_TAG "NS_PROVIDER_INTERFACE"
-#define NOTIFICATION_TAG "NS_PROVIDER_NOTIFICATION"
-#define SCHEDULER_TAG "NS_PROVIDER_SCHEDULER"
-#define LISTENER_TAG "NS_PROVIDER_LISTENER"
-#define RESOURCE_TAG "NS_PROVIDER_RESOURCE"
-
-#define NS_ROOT_TYPE "oic.r.notification"
+#define NOTIOBJ_TITLE_KEY "title"
+#define NOTIOBJ_ID_KEY "id"
+#define NOTOOBJ_CONTENT_KEY "contentText"
+
+#define DISCOVERY_TAG "NS_PROVIDER_DISCOVERY"
+#define SUBSCRIPTION_TAG "NS_PROVIDER_SUBSCRIPTION"
+#define INTERFACE_TAG "NS_PROVIDER_INTERFACE"
+#define NOTIFICATION_TAG "NS_PROVIDER_NOTIFICATION"
+#define SCHEDULER_TAG "NS_PROVIDER_SCHEDULER"
+#define LISTENER_TAG "NS_PROVIDER_LISTENER"
+#define RESOURCE_TAG "NS_PROVIDER_RESOURCE"
+
+#define NS_ROOT_TYPE "oic.r.notification"
#define NS_COLLECTION_MESSAGE_TYPE "oic.r.notification.message"
-#define NS_COLLECTION_SYNC_TYPE "oic.r.notification.sync"
+#define NS_COLLECTION_SYNC_TYPE "oic.r.notification.sync"
-#define NS_DEFAULT_INTERFACE "oic.if.baseline"
+#define NS_DEFAULT_INTERFACE "oic.if.baseline"
-#define NS_ROOT_URI "/notification"
-#define NS_COLLECTION_MESSAGE_URI "/notification/message"
-#define NS_COLLECTION_SYNC_URI "/notification/sync"
+#define NS_ROOT_URI "/notification"
+#define NS_COLLECTION_MESSAGE_URI "/notification/message"
+#define NS_COLLECTION_SYNC_URI "/notification/sync"
+
+#define NS_QUERY_SEPARATOR "&;"
+#define NS_KEY_VALUE_DELIMITER "="
+
+#define NS_QUERY_CONSUMER_ID "consumerid"
+#define NS_QUERY_PROVIDER_ID "providerid"
+
+#define NS_QUERY_ID_SIZE 10
typedef enum eConnectionState
{
typedef struct\r
{\r
OCResourceHandle handle;\r
- char* id;\r
- char* title;\r
- char* body;\r
+\r
+ uint64_t messageId;\r
+ char providerId[37];\r
+\r
+ //optional\r
+ NSMessageType type;\r
+ char * dateTime;\r
+ uint64_t ttl;\r
+ char * title;\r
+ char * contentText;\r
+ char * sourceName;\r
+ NSMediaContents * mediaContents;\r
+\r
} NSMessageResource;\r
\r
typedef struct\r
char* state;\r
} NSSyncResource;\r
\r
+typedef struct\r
+{\r
+ char providerId[37];\r
+ char * providerName;\r
+} NSProviderInfo;\r
+\r
#endif /* _NS_STRUCTS_H_ */\r
// Do shallow copy
memcpy(copyOfRequest, entityHandlerRequest, sizeof(OCEntityHandlerRequest));
-
if (copyOfRequest->query)
{
copyOfRequest->query = OICStrdup(entityHandlerRequest->query);
return NS_ERROR;
}
- if (obj->messageId)
- {
- obj->messageId = 0;
- }
-
- if (obj->providerId)
- {
- NS_LOG_V(DEBUG, "obj->mSourceid = %s", obj->providerId);
- OICFree(obj->providerId);
- obj->providerId = NULL;
- }
-
OICFree(obj);
return NS_OK;
}
newMsg = (NSSyncInfo *)OICMalloc(sizeof(NSSyncInfo));
- newMsg->messageId = 0;
- newMsg->providerId = NULL;
- newMsg->state = -1;
-
- if (copyMsg->messageId)
- {
- newMsg->messageId = copyMsg->messageId;
- }
-
- if (copyMsg->providerId)
- {
- newMsg->providerId = OICStrdup(copyMsg->providerId);
- }
+ newMsg->messageId = copyMsg->messageId;
+ OICStrcpy(newMsg->providerId, UUID_STRING_SIZE, copyMsg->providerId);
newMsg->state = copyMsg->state;
return newMsg;
return NS_ERROR;
}
- if (obj->mAddress)
- {
- OICFree(obj->mAddress);
- obj->mAddress = NULL;
- }
-
- if (obj->mDeviceId)
- {
- OICFree(obj->mDeviceId);
- obj->mDeviceId = NULL;
- }
+ (obj->consumerId)[0] = '\0';
OICFree(obj);
+ obj = NULL;
return NS_OK;
}
}
newMsg = (NSConsumer *)OICMalloc(sizeof(NSConsumer));
- newMsg->mAddress = NULL;
- newMsg->mDeviceId = NULL;
-
- if (copyMsg->mAddress)
- {
- newMsg->mAddress = OICStrdup(copyMsg->mAddress);
- }
+ (newMsg->consumerId)[0] = '\0';
- if (copyMsg->mDeviceId)
- {
- newMsg->mDeviceId = OICStrdup(copyMsg->mDeviceId);
- }
+ OICStrcpy(newMsg->consumerId, UUID_STRING_SIZE, copyMsg->consumerId);
return newMsg;
}
{
OCRepPayloadSetPropString(*msgPayload, name, copyString);
}
- else
- {
- OCRepPayloadSetNull(*msgPayload, name);
- }
}
NSSyncInfo * NSGetSyncInfo(OCPayload * payload)
{
- NS_LOG(DEBUG, "NSBuildOICNotificationSync - IN");
+ NS_LOG(DEBUG, "NSGetSyncInfo - IN");
+ char * providerId = NULL;
+ int64_t state;
if(!payload)
{
OICFree(retSync);
return NULL;
}
- if (!OCRepPayloadGetPropString(repPayload, NS_ATTRIBUTE_PROVIDER_ID, &retSync->providerId))
+
+ if (!OCRepPayloadGetPropString(repPayload, NS_ATTRIBUTE_PROVIDER_ID, &providerId))
{
OICFree(retSync);
return NULL;
}
- int64_t state;
+
if (!OCRepPayloadGetPropInt(repPayload, NS_ATTRIBUTE_STATE, &state))
{
OICFree(retSync);
}
retSync->state = (NSSyncType) state;
+ OICStrcpy(retSync->providerId, UUID_STRING_SIZE, providerId);
+ OICFree(providerId);
- NS_LOG_V(DEBUG, "Sync ID : %ld", retSync->messageId);
+ NS_LOG_V(DEBUG, "Provider ID : %s", retSync->providerId);
+ NS_LOG_V(DEBUG, "Sync ID : %lld", retSync->messageId);
NS_LOG_V(DEBUG, "Sync State : %d", (int) retSync->state);
- NS_LOG(DEBUG, "NSBuildOICNotificationSync - OUT");
+ NS_LOG(DEBUG, "NSGetSyncInfo - OUT");
return retSync;
}
+
+NSResult NSGenerateUUIDStr(char uuidStr[UUID_STRING_SIZE])
+{
+ uint8_t uuid[UUID_SIZE] = { 0, };
+
+ if (RAND_UUID_OK == OCGenerateUuid(uuid))
+ {
+ if (RAND_UUID_OK == OCConvertUuidToString(uuid, uuidStr))
+ {
+ return NS_OK;
+ }
+ }
+ return NS_ERROR;
+}
+
+char * NSGetValueFromQuery(char *query, char * compareKey)
+{
+
+ char *key = NULL;
+ char *value = NULL;
+ char *restOfQuery = NULL;
+ int numKeyValuePairsParsed = 0;
+
+ NS_LOG_V(INFO, "NS Query Params = %s", query);
+
+ char *keyValuePair = strtok_r (query, NS_QUERY_SEPARATOR, &restOfQuery);
+
+ while(keyValuePair)
+ {
+ if (numKeyValuePairsParsed >= 2)
+ {
+ NS_LOG(ERROR, "More than 2 queries params in URI.");
+ return NULL;
+ }
+
+ key = strtok_r(keyValuePair, NS_KEY_VALUE_DELIMITER, &value);
+
+ if (!key || !value)
+ {
+ NS_LOG(ERROR, "More than 2 queries params in URI.");
+ return NULL;
+ }
+
+ if (strcmp(key, compareKey) == 0)
+ {
+ return value;
+ }
+
+ ++numKeyValuePairsParsed;
+
+ keyValuePair = strtok_r(NULL, NS_QUERY_SEPARATOR, &restOfQuery);
+ }
+
+ return NULL;
+}
#include "NSConstants.h"\r
#include "oic_malloc.h"\r
#include "oic_string.h"\r
+#include "ocrandom.h"\r
\r
OCEntityHandlerRequest *NSCopyOCEntityHandlerRequest(OCEntityHandlerRequest *);\r
NSResult NSFreeOCEntityHandlerRequest(OCEntityHandlerRequest *);\r
NSConsumer * NSDuplicateConsumer(NSConsumer *);\r
\r
void NSDuplicateSetPropertyString(OCRepPayload **, const char *, const char *);\r
+NSResult NSGenerateUUIDStr(char uuidStr[UUID_STRING_SIZE]);\r
\r
+char * NSGetValueFromQuery(char *query, char * compareKey);\r
\r
\r
#endif /* _NS_UTIL__H_ */\r
retSync->messageId = id;
retSync->state = (NSSyncType) state;
- retSync->providerId = pId;
+ (retSync->providerId)[0] = '\0';
NS_LOG_V(DEBUG, "Sync ID : %ld", retSync->messageId);
NS_LOG_V(DEBUG, "Sync State : %d", (int) retSync->state);
#include "oic_malloc.h"\r
#include "oic_string.h"\r
#include "cautilinterface.h"\r
+#include "NSProviderSystem.h"\r
+#include "oic_time.h"\r
\r
bool initProvider = false;\r
static NSSubscribeRequestCallback g_subscribeRequestCb = NULL;\r
-static NSSyncCallback g_syncCb = NULL;\r
+static NSProviderSyncInfoCallback g_syncCb = NULL;\r
\r
pthread_mutex_t nsInitMutex;\r
\r
NS_LOG(DEBUG, "NSRegisterSubscribeRequestCb - OUT");\r
}\r
\r
-void NSRegisterSyncCb(NSSyncCallback syncCb)\r
+void NSRegisterSyncCb(NSProviderSyncInfoCallback syncCb)\r
{\r
NS_LOG(DEBUG, "NSRegisterSyncCb - IN");\r
g_syncCb = syncCb;\r
}\r
\r
NSResult NSStartProvider(NSAccessPolicy policy, NSSubscribeRequestCallback subscribeRequestCb,\r
- NSSyncCallback syncCb)\r
+ NSProviderSyncInfoCallback syncCb)\r
{\r
NS_LOG(DEBUG, "NSStartProvider - IN");\r
\r
{\r
NS_LOG(DEBUG, "Init Provider");\r
initProvider = true;\r
+ NSInitProviderInfo();\r
NSSetSubscriptionAccessPolicy(policy);\r
NSRegisterSubscribeRequestCb(subscribeRequestCb);\r
NSRegisterSyncCb(syncCb);\r
\r
if(initProvider)\r
{\r
+ NSDeinitProviderInfo();\r
NSUnRegisterResource();\r
NSRegisterSubscribeRequestCb((NSSubscribeRequestCallback)NULL);\r
- NSRegisterSyncCb((NSSyncCallback)NULL);\r
+ NSRegisterSyncCb((NSProviderSyncInfoCallback)NULL);\r
NSStopScheduler();\r
NSStorageDestroy(consumerSubList);\r
NSStorageDestroy(messageList);\r
\r
NSMessage * newMsg = NSDuplicateMessage(msg);\r
\r
+ OICStrcpy(newMsg->providerId, UUID_STRING_SIZE, NSGetProviderInfo()->providerId);\r
+\r
NSPushQueue(NOTIFICATION_SCHEDULER, TASK_SEND_NOTIFICATION, newMsg);\r
\r
pthread_mutex_unlock(&nsInitMutex);\r
return NS_OK;\r
}\r
\r
-NSResult NSReadCheck(NSMessage *msg)\r
+NSResult NSProviderSendSyncInfo(uint64_t messageId, NSSyncType type)\r
{\r
NS_LOG(DEBUG, "NSProviderReadCheck - IN");\r
\r
pthread_mutex_lock(&nsInitMutex);\r
- NSPushQueue(NOTIFICATION_SCHEDULER, TASK_SEND_READ, msg);\r
+ NSSyncInfo * syncInfo = (NSSyncInfo *)OICMalloc(sizeof(NSSyncInfo));\r
+ OICStrcpy(syncInfo->providerId, UUID_STRING_SIZE, NSGetProviderInfo()->providerId);\r
+ syncInfo->messageId = messageId;\r
+ syncInfo->state = type;\r
+\r
+ NSPushQueue(NOTIFICATION_SCHEDULER, TASK_SEND_READ, syncInfo);\r
pthread_mutex_unlock(&nsInitMutex);\r
\r
NS_LOG(DEBUG, "NSProviderReadCheck - OUT");\r
\r
OCEntityHandlerRequest * request = (OCEntityHandlerRequest*)node->taskData;\r
NSConsumer * consumer = (NSConsumer *)OICMalloc(sizeof(NSConsumer));\r
- consumer->mDeviceId = OICStrdup(request->devAddr.addr);\r
- consumer->mAddress = OICStrdup(request->devAddr.addr);\r
+\r
+ char * consumerId = NSGetValueFromQuery(request->query, NS_QUERY_CONSUMER_ID);\r
+ if(!consumerId)\r
+ {\r
+ NSFreeConsumer(consumer);\r
+ NS_LOG(ERROR, "Consumer ID NULL");\r
+ break;\r
+ }\r
+\r
+ OICStrcpy(consumer->consumerId, UUID_STRING_SIZE, consumerId);\r
+ OICFree(consumerId);\r
\r
NSSubscribeRequestCb(consumer);\r
NSFreeConsumer(consumer);\r
OCRepPayloadSetUri(*msgPayload, NS_COLLECTION_MESSAGE_URI);
- NSDuplicateSetPropertyString(msgPayload, NS_ATTRIBUTE_MESSAGE_ID, msg->messageId);
+ OCRepPayloadSetPropInt(msgPayload, NS_ATTRIBUTE_MESSAGE_ID, msg->messageId);
NSDuplicateSetPropertyString(msgPayload, NS_ATTRIBUTE_TITLE, msg->title);
NSDuplicateSetPropertyString(msgPayload, NS_ATTRIBUTE_TEXT, msg->contentText);
NSDuplicateSetPropertyString(msgPayload, NS_ATTRIBUTE_SOURCE, msg->sourceName);
OCRepPayloadSetUri(*syncPayload, NS_COLLECTION_SYNC_URI);
- NSDuplicateSetPropertyString(syncPayload, NS_ATTRIBUTE_MESSAGE_ID, sync->messageId);
NSDuplicateSetPropertyString(syncPayload, NS_ATTRIBUTE_PROVIDER_ID, sync->providerId);
-
+ OCRepPayloadSetPropInt(syncPayload, NS_ATTRIBUTE_MESSAGE_ID, sync->messageId);
OCRepPayloadSetPropInt(*syncPayload, NS_ATTRIBUTE_STATE, sync->state);
NS_LOG(DEBUG, "NSSetSyncPayload - OUT");
else if (strcmp(uri, NS_COLLECTION_MESSAGE_URI) == 0)
{
- NotificationMessageResource.id = NULL;
+ NotificationMessageResource.messageId = 0;
+
+ (NotificationMessageResource.providerId)[0] = '\0';
+ NotificationMessageResource.type = 0;
+ NotificationMessageResource.dateTime = NULL;
+ NotificationMessageResource.ttl = 0;
NotificationMessageResource.title = NULL;
- NotificationMessageResource.body = NULL;
- NotificationMessageResource.handle = NULL;
+ NotificationMessageResource.contentText = NULL;
+ NotificationMessageResource.sourceName = NULL;
+ NotificationMessageResource.mediaContents = NULL;
if (OCCreateResource(&NotificationMessageResource.handle, NS_COLLECTION_MESSAGE_TYPE,
NS_DEFAULT_INTERFACE, NS_COLLECTION_MESSAGE_URI, NSEntityHandlerMessageCb, NULL,
{
NS_LOG(DEBUG, "NSMessage is valid");
- NotificationMessageResource.id = OICStrdup(msg->messageId);
- NotificationMessageResource.title = OICStrdup(msg->title);
- NotificationMessageResource.body = OICStrdup(msg->contentText);
+ NotificationMessageResource.messageId = msg->messageId;
+ OICStrcpy(NotificationMessageResource.providerId, UUID_STRING_SIZE, msg->providerId);
+ NotificationMessageResource.type = msg->type;
+ NotificationMessageResource.dateTime = msg->dateTime;
+ NotificationMessageResource.ttl = msg->ttl;
+ NotificationMessageResource.title = msg->title;
+ NotificationMessageResource.contentText = msg->contentText;
+ NotificationMessageResource.sourceName = msg->sourceName;
+ NotificationMessageResource.mediaContents = msg->mediaContents;
}
else
{
NSResult NSPutSyncResource(NSSyncInfo *sync, OCResourceHandle * handle);
-const char* NSGetNotificationMessageUri();
-
-const char* NSGetNotificationSyncUri();
-
-const char* NSGetNotificationUri();
-
-NSResult NSCopyString(char** targetString, const char* sourceString);
-
#endif /* _NS_PROVIDER_RESOURCE_H_ */
NSCacheElement * element = (NSCacheElement *) OICMalloc(sizeof(NSCacheElement));\r
NSCacheSubData * subData = (NSCacheSubData *) OICMalloc(sizeof(NSCacheSubData));\r
\r
- subData->id = OICStrdup(entityHandlerRequest->devAddr.addr);\r
+ char * id = NSGetValueFromQuery(entityHandlerRequest->query, NS_QUERY_CONSUMER_ID);\r
+ OICStrcpy(subData->id, UUID_STRING_SIZE, id);\r
+ OICFree(id);\r
subData->isWhite = false;\r
subData->messageObId = entityHandlerRequest->obsInfo.obsId;\r
subData->syncObId = 0;\r
\r
NSCacheSubData * subData = (NSCacheSubData *) OICMalloc(sizeof(NSCacheSubData));\r
\r
- subData->id = OICStrdup(entityHandlerRequest->devAddr.addr);\r
+ char * id = NSGetValueFromQuery(entityHandlerRequest->query, NS_QUERY_CONSUMER_ID);\r
+ OICStrcpy(subData->id, UUID_STRING_SIZE, id);\r
+ OICFree(id);\r
+\r
subData->isWhite = false;\r
subData->syncObId = entityHandlerRequest->obsInfo.obsId;\r
subData->messageObId = 0;\r
\r
NSCacheElement * element = (NSCacheElement *) OICMalloc(sizeof(NSCacheElement));\r
NSCacheSubData * subData = (NSCacheSubData *) OICMalloc(sizeof(NSCacheSubData));\r
- subData->id = OICStrdup(entityHandlerRequest->devAddr.addr);\r
+\r
+ char * id = NSGetValueFromQuery(entityHandlerRequest->query, NS_QUERY_CONSUMER_ID);\r
+ OICStrcpy(subData->id, UUID_STRING_SIZE, id);\r
+ OICFree(id);\r
+\r
subData->isWhite = false;\r
subData->messageObId = entityHandlerRequest->obsInfo.obsId;\r
\r
}\r
\r
OCRepPayloadSetUri(payload, NS_COLLECTION_MESSAGE_URI);\r
- OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_MESSAGE_ID, "0000-0000-0000-0000");\r
+ OCRepPayloadSetPropInt(payload, NS_ATTRIBUTE_MESSAGE_ID, 1);\r
OCRepPayloadSetPropBool(payload, NS_ATTRIBUTE_ACCPETANCE, accepted);\r
\r
NSCacheElement * element = NSStorageRead(consumerSubList, id);\r
NSCacheElement * element = (NSCacheElement *) OICMalloc(sizeof(NSCacheElement));\r
\r
NSCacheSubData * subData = (NSCacheSubData *) OICMalloc(sizeof(NSCacheSubData));\r
- subData->id = OICStrdup(entityHandlerRequest->devAddr.addr);\r
+ char * id = NSGetValueFromQuery(entityHandlerRequest->query, NS_QUERY_CONSUMER_ID);\r
+ OICStrcpy(subData->id, UUID_STRING_SIZE, id);\r
+ OICFree(id);\r
subData->isWhite = true;\r
subData->messageObId = entityHandlerRequest->obsInfo.obsId;\r
\r
}\r
}\r
\r
- NSSendResponse(entityHandlerRequest->devAddr.addr, accepted);\r
+ char * id = NSGetValueFromQuery(entityHandlerRequest->query, NS_QUERY_CONSUMER_ID);\r
+ NSSendResponse(id, accepted);\r
+\r
+ OICFree(id);\r
NSFreeOCEntityHandlerRequest(entityHandlerRequest);\r
\r
NS_LOG(DEBUG, "NSSendSubscriptionResponse - OUT");\r
NS_LOG(DEBUG, "CASE TASK_SEND_ALLOW : ");\r
NSConsumer * consumer = (NSConsumer *) node->taskData;\r
\r
- char * id = OICStrdup(consumer->mDeviceId);\r
-\r
- NSCacheUpdateSubScriptionState(consumerSubList, id, true);\r
- NSSendResponse(id, true);\r
- OICFree(id);\r
+ NSCacheUpdateSubScriptionState(consumerSubList, consumer->consumerId, true);\r
+ NSSendResponse(consumer->consumerId, true);\r
NSFreeConsumer(consumer);\r
break;\r
}\r
NS_LOG(DEBUG, "CASE TASK_SEND_DENY : ");\r
NSConsumer * consumer = (NSConsumer *) node->taskData;\r
\r
- char * id = OICStrdup(consumer->mDeviceId);\r
-\r
- NSCacheUpdateSubScriptionState(consumerSubList, id, false);\r
- NSSendResponse(id, false);\r
- OICFree(id);\r
+ NSCacheUpdateSubScriptionState(consumerSubList, consumer->consumerId, false);\r
+ NSSendResponse(consumer->consumerId, false);\r
NSFreeConsumer(consumer);\r
\r
break;\r
#include "NSProviderSystem.h"\r
\r
static NSConnectionState NSProviderConnectionState;\r
+NSProviderInfo * providerInfo;\r
\r
void NSSetProviderConnectionState(NSConnectionState state)\r
{\r
\r
return NSProviderConnectionState;\r
}\r
+\r
+void NSInitProviderInfo()\r
+{\r
+ NS_LOG(DEBUG, "NSInitProviderInfo");\r
+\r
+ providerInfo = (NSProviderInfo *) OICMalloc(sizeof(NSProviderInfo));\r
+ NSGenerateUUIDStr(providerInfo->providerId);\r
+ providerInfo->providerName = NULL;\r
+}\r
+\r
+void NSDeinitProviderInfo()\r
+{\r
+ NS_LOG(DEBUG, "NSDeinitProviderInfo");\r
+\r
+ if(providerInfo == NULL)\r
+ {\r
+ NS_LOG(DEBUG, "providerInfo is NULL");\r
+ return;\r
+ }\r
+\r
+ if(providerInfo->providerName != NULL)\r
+ {\r
+ OICFree(providerInfo->providerName);\r
+ providerInfo->providerName = NULL;\r
+ }\r
+\r
+ OICFree(providerInfo);\r
+ providerInfo = NULL;\r
+}\r
+\r
+NSProviderInfo * NSGetProviderInfo()\r
+{\r
+ NS_LOG(DEBUG, "Change Connection State");\r
+\r
+ return providerInfo;\r
+}\r
+\r
#include "logger.h"\r
#include "NSCommon.h"\r
#include "NSConstants.h"\r
+#include "oic_malloc.h"\r
+#include "NSStructs.h"\r
\r
void NSSetProviderConnectionState(NSConnectionState state);\r
NSConnectionState NSGetProviderConnectionState();\r
\r
+void NSInitProviderInfo();\r
+void NSDeinitProviderInfo();\r
+NSProviderInfo * NSGetProviderInfo();\r
+\r
#endif /* _NS_PROVIDER_SYSTEM__H_ */\r
NSCacheElement * next = NULL;\r
NSCacheType type = list->cacheType;\r
\r
-\r
NS_LOG_V(DEBUG, "Find ID - %s", findId);\r
\r
while (iter)\r