implementation NSStopProvider and bug fixed.
authorjaesick.shin <jaesick.shin@samsung.com>
Mon, 30 May 2016 00:52:51 +0000 (09:52 +0900)
committerUze Choi <uzchoi@samsung.com>
Tue, 31 May 2016 02:22:08 +0000 (02:22 +0000)
this patch included
first, memory copy and free of NSSync, NSConsumer and so on.
second, uregister resource and thread exit.
third, bug fixed about createpayload value is NULL.

Second patch included
first, resolve android build error in proivder jni code.
second, remove duplicated log.

Change-Id: I525efde2c81793a4947a75df1022337dd2766845
Signed-off-by: jaesick.shin <jaesick.shin@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/8375
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Hun-je Yeon <hunje.yeon@samsung.com>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
17 files changed:
service/notification/android/notification-service/src/main/jni/notificationProvider.c
service/notification/examples/linux/notificationprovider.c
service/notification/include/NSCommon.h
service/notification/src/common/NSUtil.c
service/notification/src/common/NSUtil.h
service/notification/src/provider/NSProviderDiscovery.c
service/notification/src/provider/NSProviderInterface.c
service/notification/src/provider/NSProviderListener.c
service/notification/src/provider/NSProviderNotification.c
service/notification/src/provider/NSProviderResource.c
service/notification/src/provider/NSProviderResource.h
service/notification/src/provider/NSProviderScheduler.c
service/notification/src/provider/NSProviderScheduler.h
service/notification/src/provider/NSProviderSubscription.c
service/notification/src/provider/NSProviderSystem.c
service/notification/src/provider/cache/linux/NSProviderMemoryCache.c
service/notification/src/provider/cache/linux/NSProviderMemoryCache.h

index de8d27d..1439d7a 100644 (file)
@@ -151,8 +151,8 @@ void NSSubscribeRequestCb(NSConsumer *consumer)
         }\r
     }\r
 \r
-    LOGI("consumer ID : %s\n", consumer->mId);\r
-    jstring consumerId = (*env)->NewStringUTF(env, consumer->mId);\r
+    LOGI("consumer ID : %s\n", consumer->mDeviceId);\r
+    jstring consumerId = (*env)->NewStringUTF(env, consumer->mDeviceId);\r
 \r
     jclass cls = (*env)->GetObjectClass(env, g_obj_subscriptionListener);\r
     if (!cls)\r
index 481c04a..8f47ff2 100644 (file)
@@ -55,9 +55,9 @@ void* OCProcessThread(void * ptr)
 void subscribeRequestCallback(NSConsumer *consumer)\r
 {\r
     OIC_LOG(INFO, TAG, "consumer requested to subscribe");\r
-    char *cid = consumer->mId;\r
 \r
-    printf("NS_ Consumer ID: %s\n", cid);\r
+    printf("NS_APP Consumer Address ID: %s\n", consumer->mAddress);\r
+    printf("NS_APP Consumer Device ID: %s\n", consumer->mDeviceId);\r
 \r
     NSAccept(consumer, true);\r
 }\r
@@ -66,7 +66,7 @@ void syncCallback(NSSync *sync)
 {\r
     OIC_LOG(INFO, TAG, "sync requested");\r
 \r
-    printf("NS_ Sync State: %d\n", sync->mState);\r
+    printf("NS_APP Sync State: %d\n", sync->mState);\r
 }\r
 \r
 int main()\r
@@ -84,7 +84,7 @@ int main()
 \r
     pthread_create(&processThread, NULL, OCProcessThread, NULL);\r
 \r
-    while (true)\r
+    while (!isExit)\r
     {\r
         char dummy;\r
 \r
@@ -92,7 +92,7 @@ int main()
         printf("2. NSStartProvider(Accepter: Consumer) \n");\r
         printf("3. NSSendNotification() \n");\r
         printf("4. NSRead \n");\r
-        //printf("5. NSAccept \n");\r
+        printf("5. NSStopProvider() \n");\r
         printf("6. NSGetConsumerList \n");\r
         //printf("7. startPresence \n");\r
         //printf("8. stopPresence \n");\r
@@ -101,6 +101,7 @@ int main()
         printf("input : ");\r
 \r
         scanf("%d", &num);\r
+        fflush(stdin);\r
         scanf("%c", &dummy);\r
         fflush(stdin);\r
 \r
@@ -129,7 +130,7 @@ int main()
                 printf("body : ");\r
                 gets(body);\r
 \r
-                printf("app - mId : %d \n", charID);\r
+                printf("app - mId : %s \n", charID);\r
                 printf("app - mTitle : %s \n", title);\r
                 printf("app - mContentText : %s \n", body);\r
 \r
@@ -140,6 +141,7 @@ int main()
                 msg->mId = strdup(charID);\r
                 msg->mTitle = strdup(title);\r
                 msg->mContentText = OICStrdup(body);\r
+                msg->mSource = NULL;\r
 \r
                 NSSendNotification(msg);\r
 \r
@@ -153,37 +155,12 @@ int main()
                 sync->mState = 1;\r
 \r
                 break;\r
-/*\r
-            case 5:\r
-                OIC_LOG(INFO, TAG, "NSAccept");\r
-\r
-                NSConsumer * consumer = (NSConsumer *)malloc(sizeof(NSConsumer));\r
-                consumer->mId = strdup("dev_001");\r
-                consumer->mUserData = NULL;\r
-                bool accepted = true;\r
-\r
-                NSAccept(consumer, accepted);\r
-\r
-                break;*/\r
 \r
+            case 5:\r
+                NSStopProvider();\r
+                break;\r
             case 6:\r
                 OIC_LOG(INFO, TAG, "NSGetConsumerList");\r
-\r
-                /*\r
-                NSConsumer *list = NULL;\r
-                int numberOfList;\r
-\r
-                NSGetConsumerList(list, numberOfList);\r
-\r
-                if(list != NULL)\r
-                {\r
-                    OIC_LOG(INFO, TAG, "Consumer list");\r
-                }\r
-                else\r
-                {\r
-                    OIC_LOG(INFO, TAG, "No Consumer list");\r
-                }\r
-                    */\r
                 break;\r
             case 7:\r
                 OIC_LOG(INFO, TAG, "NSStartPresence - not working");\r
@@ -193,6 +170,10 @@ int main()
                 OIC_LOG(INFO, TAG, "NSStopPresence- not working");\r
                 //NSTestStopPresence();\r
                 break;\r
+            case 0:\r
+                NSStopProvider();\r
+                isExit = true;\r
+                break;\r
             default:\r
                 OIC_LOG(INFO, TAG, "Under Construction");\r
                 break;\r
index 8338839..eb0642e 100644 (file)
@@ -76,19 +76,14 @@ typedef enum
 } NSSyncTypes;
 
 /**
- *  Device information
+ *  Consumer information
  */
 typedef struct
 {
-    char * mId;
-    void * mUserData;
+    char * mDeviceId;
+    char * mAddress;
 
-} NSDevice;
-
-/**
- *  Consumer information is same to device information
- */
-typedef NSDevice NSConsumer;
+} NSConsumer;
 
 /**
  *  Provider information
@@ -123,11 +118,9 @@ typedef struct
 {
     // Mandatory
     char * mMessageId;
+    char * mSourceId; // TO-DO from whom
     NSSyncTypes mState;
 
-    //Optional
-    NSDevice * mDevice;
-
 } NSSync;
 
 #endif /* _NS_COMMON_H_ */
index a8443af..a4253c8 100755 (executable)
 
 #include "NSUtil.h"
 
+OCEntityHandlerRequest *NSCopyOCEntityHandlerRequest(OCEntityHandlerRequest *entityHandlerRequest)
+{
+    NS_LOG(DEBUG, "NSCopyOCEntityHandlerRequest - IN");
+
+    OCEntityHandlerRequest *copyOfRequest =
+            (OCEntityHandlerRequest *)OICMalloc(sizeof(OCEntityHandlerRequest));
+
+    if (copyOfRequest)
+    {
+        // Do shallow copy
+        memcpy(copyOfRequest, entityHandlerRequest, sizeof(OCEntityHandlerRequest));
+
+
+        if (copyOfRequest->query)
+        {
+            copyOfRequest->query = OICStrdup(entityHandlerRequest->query);
+            if(!copyOfRequest->query)
+            {
+                NS_LOG(ERROR, "Copy failed due to allocation failure");
+                OICFree(copyOfRequest);
+                return NULL;
+            }
+        }
+
+        if (entityHandlerRequest->payload)
+        {
+            copyOfRequest->payload = (OCPayload *)
+                    (OCRepPayloadClone ((OCRepPayload*) entityHandlerRequest->payload));
+        }
+
+        // Ignore vendor specific header options for example
+        copyOfRequest->numRcvdVendorSpecificHeaderOptions = 0;
+        copyOfRequest->rcvdVendorSpecificHeaderOptions = NULL;
+    }
+
+    if (copyOfRequest)
+    {
+        NS_LOG(DEBUG, "Copied client request");
+    }
+    else
+    {
+        NS_LOG(DEBUG, "Error copying client request");
+    }
+
+    NS_LOG(DEBUG, "NSCopyOCEntityHandlerRequest - OUT");
+
+    return copyOfRequest;
+}
+
+NSResult NSFreeOCEntityHandlerRequest(OCEntityHandlerRequest * entityHandlerRequest)
+{
+    NS_LOG(DEBUG, "NSFreeOCEntityHandlerRequest - IN");
+
+    OICFree(entityHandlerRequest->query);
+    OCPayloadDestroy(entityHandlerRequest->payload);
+    OICFree(entityHandlerRequest);
+
+    NS_LOG(DEBUG, "NSFreeOCEntityHandlerRequest - OUT");
+
+    return NS_OK;
+}
+
 NSResult NSFreeMessage(NSMessage * obj)
 {
     if (!obj)
@@ -67,6 +129,10 @@ NSMessage * NSDuplicateMessage(NSMessage * copyMsg)
     }
 
     newMsg = (NSMessage *)OICMalloc(sizeof(NSMessage));
+    newMsg->mContentText = NULL;
+    newMsg->mId = NULL;
+    newMsg->mSource = NULL;
+    newMsg->mTitle = NULL;
 
     if (copyMsg->mId)
     {
@@ -91,66 +157,105 @@ NSMessage * NSDuplicateMessage(NSMessage * copyMsg)
     return newMsg;
 }
 
-OCEntityHandlerRequest *NSCopyOCEntityHandlerRequest(OCEntityHandlerRequest *entityHandlerRequest)
+NSResult NSFreeSync(NSSync * obj)
 {
-    NS_LOG(DEBUG, "NSCopyOCEntityHandlerRequest - IN");
+    if (!obj)
+    {
+        return NS_ERROR;
+    }
 
-    OCEntityHandlerRequest *copyOfRequest =
-            (OCEntityHandlerRequest *)OICMalloc(sizeof(OCEntityHandlerRequest));
+    if (obj->mMessageId)
+    {
+        OICFree(obj->mMessageId);
+        obj->mMessageId = NULL;
+    }
 
-    if (copyOfRequest)
+    if (obj->mSourceId)
     {
-        // Do shallow copy
-        memcpy(copyOfRequest, entityHandlerRequest, sizeof(OCEntityHandlerRequest));
+        OICFree(obj->mSourceId);
+        obj->mSourceId = NULL;
+    }
 
+    OICFree(obj);
 
-        if (copyOfRequest->query)
-        {
-            copyOfRequest->query = OICStrdup(entityHandlerRequest->query);
-            if(!copyOfRequest->query)
-            {
-                NS_LOG(ERROR, "Copy failed due to allocation failure");
-                OICFree(copyOfRequest);
-                return NULL;
-            }
-        }
+    return NS_OK;
+}
 
-        if (entityHandlerRequest->payload)
-        {
-            copyOfRequest->payload = (OCPayload *)
-                    (OCRepPayloadClone ((OCRepPayload*) entityHandlerRequest->payload));
-        }
+NSSync* NSDuplicateSync(NSSync * copyMsg)
+{
+    NSSync * newMsg = NULL;
 
-        // Ignore vendor specific header options for example
-        copyOfRequest->numRcvdVendorSpecificHeaderOptions = 0;
-        copyOfRequest->rcvdVendorSpecificHeaderOptions = NULL;
+    if(copyMsg == NULL)
+    {
+        NS_LOG(ERROR, "Copy Msg is NULL");
+        return NULL;
     }
 
-    if (copyOfRequest)
+    newMsg = (NSSync *)OICMalloc(sizeof(NSSync));
+    newMsg->mMessageId = NULL;
+    newMsg->mSourceId = NULL;
+    newMsg->mState = -1;
+
+    if (copyMsg->mMessageId)
     {
-        NS_LOG(DEBUG, "Copied client request");
+        newMsg->mMessageId = OICStrdup(copyMsg->mMessageId);
     }
-    else
+
+    if (copyMsg->mSourceId)
     {
-        NS_LOG(DEBUG, "Error copying client request");
+        newMsg->mSourceId = OICStrdup(copyMsg->mSourceId);
     }
 
-    NS_LOG(DEBUG, "NSCopyOCEntityHandlerRequest - OUT");
-
-    return copyOfRequest;
+    return newMsg;
 }
 
-NSResult NSFreeOCEntityHandlerRequest(OCEntityHandlerRequest * entityHandlerRequest)
+NSResult NSFreeConsumer(NSConsumer * obj)
 {
-    NS_LOG(DEBUG, "NSFreeOCEntityHandlerRequest - IN");
+    if (!obj)
+    {
+        return NS_ERROR;
+    }
 
-    OICFree(entityHandlerRequest->query);
-    OCPayloadDestroy(entityHandlerRequest->payload);
-    OICFree(entityHandlerRequest);
+    if (obj->mAddress)
+    {
+        OICFree(obj->mAddress);
+        obj->mAddress = NULL;
+    }
 
-    NS_LOG(DEBUG, "NSFreeOCEntityHandlerRequest - OUT");
+    if (obj->mDeviceId)
+    {
+        OICFree(obj->mDeviceId);
+        obj->mDeviceId = NULL;
+    }
+
+    OICFree(obj);
 
     return NS_OK;
 }
 
+NSConsumer* NSDuplicateConsumer(NSConsumer * copyMsg)
+{
+    NSConsumer * newMsg = NULL;
+
+    if(copyMsg == NULL)
+    {
+        NS_LOG(ERROR, "Copy Msg is NULL");
+        return NULL;
+    }
+
+    newMsg = (NSConsumer *)OICMalloc(sizeof(NSConsumer));
+    newMsg->mAddress = NULL;
+    newMsg->mDeviceId = NULL;
 
+    if (copyMsg->mAddress)
+    {
+        newMsg->mAddress = OICStrdup(copyMsg->mAddress);
+    }
+
+    if (copyMsg->mDeviceId)
+    {
+        newMsg->mDeviceId = OICStrdup(copyMsg->mDeviceId);
+    }
+
+    return newMsg;
+}
index 90bd1db..a99a011 100755 (executable)
 #include "oic_malloc.h"\r
 #include "oic_string.h"\r
 \r
-NSResult NSFreeMessage(NSMessage *);\r
-NSMessage * NSDuplicateMessage(NSMessage *);\r
 OCEntityHandlerRequest *NSCopyOCEntityHandlerRequest(OCEntityHandlerRequest *);\r
 NSResult NSFreeOCEntityHandlerRequest(OCEntityHandlerRequest *);\r
 \r
+NSResult NSFreeMessage(NSMessage *);\r
+NSMessage * NSDuplicateMessage(NSMessage *);\r
+\r
+NSResult NSFreeSync(NSSync *);\r
+NSSync * NSDuplicateSync(NSSync *);\r
+\r
+NSResult NSFreeConsumer(NSConsumer *);\r
+NSConsumer * NSDuplicateConsumer(NSConsumer *);\r
+\r
 #endif /* _NS_UTIL__H_ */\r
index 03bb975..9c0cd3f 100644 (file)
 \r
 NSResult NSStartPresence()\r
 {\r
-    OIC_LOG(INFO, DISCOVERY_TAG, "NSStartPresence()");\r
-    NS_LOG(INFO, "NSStartPresence()");\r
+    NS_LOG(DEBUG, "NSStartPresence()");\r
 \r
     if (OCStartPresence(0) != OC_STACK_OK)\r
     {\r
-        OIC_LOG(INFO, DISCOVERY_TAG, "NSStartPresence() NS_ERROR");\r
-        NS_LOG(INFO, "NSStartPresence() NS_ERROR");\r
+        NS_LOG(DEBUG, "NSStartPresence() NS_ERROR");\r
         return NS_ERROR;\r
     }\r
 \r
-    OIC_LOG(INFO, DISCOVERY_TAG, "NSStartPresence() NS_OK");\r
-    NS_LOG(INFO, "NSStartPresence() NS_OK");\r
+    NS_LOG(DEBUG, "NSStartPresence() NS_OK");\r
     return NS_OK;\r
 }\r
 \r
 NSResult NSStopPresence()\r
 {\r
-    OIC_LOG(INFO, DISCOVERY_TAG, "NSStopPresence()");\r
-    NS_LOG(INFO, "NSStopPresence()");\r
+    NS_LOG(DEBUG, "NSStopPresence()");\r
 \r
     if (OCStopPresence() != OC_STACK_OK)\r
     {\r
-        OIC_LOG(INFO, DISCOVERY_TAG, "NSStopPresence() NS_ERROR");\r
-        NS_LOG(INFO, "NSStopPresence() NS_ERROR");\r
+        NS_LOG(DEBUG, "NSStopPresence() NS_ERROR");\r
         return NS_ERROR;\r
     }\r
 \r
-    OIC_LOG(INFO, DISCOVERY_TAG, "NSStopPresence() NS_OK");\r
-    NS_LOG(INFO, "NSStopPresence() NS_OK");\r
+    NS_LOG(DEBUG, "NSStopPresence() NS_OK");\r
     return NS_OK;\r
 }\r
 \r
@@ -58,8 +52,7 @@ void * NSDiscoverySchedule(void * ptr)
 {\r
     if (ptr == NULL)\r
     {\r
-        OIC_LOG(INFO, DISCOVERY_TAG, "Create NSDiscoverySchedule\n");\r
-        NS_LOG(INFO, "Create NSDiscoverySchedule");\r
+        NS_LOG(DEBUG, "Create NSDiscoverySchedule");\r
     }\r
 \r
     while (NSIsRunning[DISCOVERY_SCHEDULER])\r
@@ -75,15 +68,15 @@ void * NSDiscoverySchedule(void * ptr)
             switch (node->taskType)\r
             {\r
                 case TASK_START_PRESENCE:\r
-                    NS_LOG(INFO, "CASE TASK_START_PRESENCE : ");\r
+                    NS_LOG(DEBUG, "CASE TASK_START_PRESENCE : ");\r
                     NSStartPresence();\r
                     break;\r
                 case TASK_STOP_PRESENCE:\r
-                    NS_LOG(INFO, "CASE TASK_STOP_PRESENCE : ");\r
+                    NS_LOG(DEBUG, "CASE TASK_STOP_PRESENCE : ");\r
                     NSStopPresence();\r
                     break;\r
                 case TASK_REGISTER_RESOURCE:\r
-                    NS_LOG(INFO, "CASE TASK_REGISTER_RESOURCE : ");\r
+                    NS_LOG(DEBUG, "CASE TASK_REGISTER_RESOURCE : ");\r
                     NSRegisterResource();\r
                     break;\r
                 default:\r
@@ -96,5 +89,7 @@ void * NSDiscoverySchedule(void * ptr)
         pthread_mutex_unlock(&NSMutex[DISCOVERY_SCHEDULER]);\r
 \r
     }\r
+\r
+    NS_LOG(DEBUG, "Destroy NSDiscoverySchedule");\r
     return NULL;\r
 }\r
index f875e2d..492cc37 100644 (file)
@@ -72,7 +72,6 @@ void NSSyncCb(NSSync *sync)
 NSResult NSStartProvider(NSAccessPolicy policy, NSSubscribeRequestCallback subscribeRequestCb,\r
         NSSyncCallback syncCb)\r
 {\r
-    OIC_LOG(INFO, INTERFACE_TAG, "Notification Service Start Provider..");\r
     NS_LOG(DEBUG, "NSStartProvider - IN");\r
 \r
     initializeMutex();\r
@@ -93,6 +92,7 @@ NSResult NSStartProvider(NSAccessPolicy policy, NSSubscribeRequestCallback subsc
         NSInitScheduler();\r
         NSStartScheduler();\r
 \r
+\r
         NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);\r
         NSPushQueue(DISCOVERY_SCHEDULER, TASK_REGISTER_RESOURCE, NULL);\r
     }\r
@@ -100,7 +100,6 @@ NSResult NSStartProvider(NSAccessPolicy policy, NSSubscribeRequestCallback subsc
     {\r
         NS_LOG(DEBUG, "Already started Notification Provider");\r
     }\r
-\r
     pthread_mutex_unlock(&nsInitMutex);\r
 \r
     NS_LOG(DEBUG, "NSStartProvider - OUT");\r
@@ -123,9 +122,17 @@ NSResult NSStopProvider()
 \r
     pthread_mutex_lock(&nsInitMutex);\r
 \r
-    NSRegisterSubscribeRequestCb((NSSubscribeRequestCallback)NULL);\r
-    NSRegisterSyncCb((NSSyncCallback)NULL);\r
-    initProvider = false;\r
+    if(initProvider)\r
+    {\r
+        NSUnRegisterResource();\r
+        NSRegisterSubscribeRequestCb((NSSubscribeRequestCallback)NULL);\r
+        NSRegisterSyncCb((NSSyncCallback)NULL);\r
+        NSStopScheduler();\r
+        NSCacheDestroy(consumerSubList);\r
+        NSCacheDestroy(messageList);\r
+\r
+        initProvider = false;\r
+    }\r
 \r
     pthread_mutex_unlock(&nsInitMutex);\r
     NS_LOG(DEBUG, "NSStopProvider - OUT");\r
@@ -134,47 +141,59 @@ NSResult NSStopProvider()
 \r
 NSResult NSSendNotification(NSMessage *msg)\r
 {\r
-    OIC_LOG(INFO, INTERFACE_TAG, "Send Notification");\r
     NS_LOG(DEBUG, "NSSendNotification - IN");\r
 \r
-    NSMessage * newMsg = NSDuplicateMessage(msg);\r
+    pthread_mutex_lock(&nsInitMutex);\r
 \r
-    if(newMsg == NULL)\r
+    if(msg == NULL)\r
     {\r
         NS_LOG(ERROR, "Msg is NULL");\r
+        pthread_mutex_unlock(&nsInitMutex);\r
         return NS_ERROR;\r
     }\r
 \r
+    NSMessage * newMsg = NSDuplicateMessage(msg);\r
+\r
     NSPushQueue(NOTIFICATION_SCHEDULER, TASK_SEND_NOTIFICATION, newMsg);\r
+\r
+    pthread_mutex_unlock(&nsInitMutex);\r
+\r
     NS_LOG(DEBUG, "NSSendNotification - OUT");\r
     return NS_OK;\r
 }\r
 \r
 NSResult NSProviderReadCheck(NSMessage *msg)\r
 {\r
-    OIC_LOG(INFO, INTERFACE_TAG, "Read Sync");\r
     NS_LOG(DEBUG, "NSProviderReadCheck - IN");\r
+\r
+    pthread_mutex_lock(&nsInitMutex);\r
     NSPushQueue(NOTIFICATION_SCHEDULER, TASK_SEND_READ, msg);\r
+    pthread_mutex_unlock(&nsInitMutex);\r
+\r
     NS_LOG(DEBUG, "NSProviderReadCheck - OUT");\r
     return NS_OK;\r
 }\r
 \r
 NSResult NSAccept(NSConsumer *consumer, bool accepted)\r
 {\r
-    OIC_LOG(INFO, INTERFACE_TAG, "Response Acceptance");\r
     NS_LOG(DEBUG, "NSAccept - IN");\r
 \r
+    pthread_mutex_lock(&nsInitMutex);\r
+\r
+    NSConsumer * newConsumer = NSDuplicateConsumer(consumer);\r
+\r
     if(accepted)\r
     {\r
         NS_LOG(DEBUG, "accepted is true - ALLOW");\r
-        NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_SEND_ALLOW, consumer);\r
+        NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_SEND_ALLOW, newConsumer);\r
     }\r
     else\r
     {\r
         NS_LOG(DEBUG, "accepted is false - DENY");\r
-        NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_SEND_DENY, consumer);\r
+        NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_SEND_DENY, newConsumer);\r
     }\r
 \r
+    pthread_mutex_unlock(&nsInitMutex);\r
     NS_LOG(DEBUG, "NSAccept - OUT");\r
     return NS_OK;\r
 }\r
@@ -183,7 +202,6 @@ void * NSResponseSchedule(void * ptr)
 {\r
     if (ptr == NULL)\r
     {\r
-        OIC_LOG(INFO, INTERFACE_TAG, "Init NSResponseSchedule");\r
         NS_LOG(DEBUG, "Create NSReponseSchedule");\r
     }\r
 \r
@@ -202,15 +220,14 @@ void * NSResponseSchedule(void * ptr)
                 case TASK_CB_SUBSCRIPTION:\r
                 {\r
                     NS_LOG(DEBUG, "CASE TASK_CB_SUBSCRIPTION : ");\r
-                    OCEntityHandlerRequest * request = (OCEntityHandlerRequest*)node->taskData;\r
-                    NSConsumer consumer;\r
 \r
-                    consumer.mId = OICStrdup(request->devAddr.addr);\r
-                    int * obId = (int *) OICMalloc(sizeof(int));\r
-                    *obId = request->obsInfo.obsId;\r
-                    consumer.mUserData = obId;\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
-                    NSSubscribeRequestCb(&consumer);\r
+                    NSSubscribeRequestCb(consumer);\r
+                    NSFreeConsumer(consumer);\r
                     NSFreeOCEntityHandlerRequest(request);\r
 \r
                     break;\r
@@ -223,8 +240,7 @@ void * NSResponseSchedule(void * ptr)
                     break;\r
                 }\r
                 default:\r
-                    OIC_LOG(INFO, INTERFACE_TAG, "Response to User");\r
-\r
+                    NS_LOG(DEBUG, "No Task Type");\r
                     break;\r
             }\r
             OICFree(node);\r
@@ -233,6 +249,8 @@ void * NSResponseSchedule(void * ptr)
         pthread_mutex_unlock(&NSMutex[RESPONSE_SCHEDULER]);\r
 \r
     }\r
+\r
+    NS_LOG(DEBUG, "Destroy NSResponseSchedule");\r
     return NULL;\r
 }\r
 \r
index e4f669d..882d455 100644 (file)
@@ -23,7 +23,6 @@
 OCEntityHandlerResult NSEntityHandlerNotificationCb(OCEntityHandlerFlag flag,\r
         OCEntityHandlerRequest *entityHandlerRequest, void* callback)\r
 {\r
-    OIC_LOG_V (INFO, LISTENER_TAG, "Inside entity handler - flags: 0x%x", flag);\r
     NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - IN");\r
 \r
     OCEntityHandlerResult ehResult = OC_EH_OK;\r
@@ -37,7 +36,7 @@ OCEntityHandlerResult NSEntityHandlerNotificationCb(OCEntityHandlerFlag flag,
     // Validate pointer\r
     if (!entityHandlerRequest)\r
     {\r
-        OIC_LOG (ERROR, LISTENER_TAG, "Invalid request pointer");\r
+        NS_LOG(ERROR, "Invalid request pointer");\r
         return OC_EH_ERROR;\r
     }\r
 \r
@@ -50,11 +49,10 @@ OCEntityHandlerResult NSEntityHandlerNotificationCb(OCEntityHandlerFlag flag,
 \r
     if (flag & OC_REQUEST_FLAG)\r
     {\r
-        OIC_LOG (INFO, LISTENER_TAG, "Flag includes OC_REQUEST_FLAG");\r
+        NS_LOG(DEBUG, "Flag includes OC_REQUEST_FLAG");\r
 \r
         if (OC_REST_GET == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_GET from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OC_REST_GET");\r
 \r
             NSPushQueue(SUBSCRIPTION_SCHEDULER, TASK_SEND_POLICY,\r
@@ -64,25 +62,22 @@ OCEntityHandlerResult NSEntityHandlerNotificationCb(OCEntityHandlerFlag flag,
         }\r
         else if (OC_REST_PUT == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_PUT from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OC_REST_PUT");\r
             ehResult = OC_EH_OK;\r
         }\r
         else if (OC_REST_POST == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_POST from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OC_REST_POST");\r
             ehResult = OC_EH_OK;\r
         }\r
         else if (OC_REST_DELETE == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_DELETE from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerNotificationCb - OC_REST_DELETE");\r
             ehResult = OC_EH_OK;\r
         }\r
         else\r
         {\r
-            OIC_LOG_V (INFO, LISTENER_TAG, "Received unsupported method %d from client",\r
+            NS_LOG_V (DEBUG, "Received unsupported method %d from client",\r
                     entityHandlerRequest->method);\r
             ehResult = OC_EH_OK;\r
         }\r
@@ -103,17 +98,17 @@ OCEntityHandlerResult NSEntityHandlerNotificationCb(OCEntityHandlerFlag flag,
             if (entityHandlerRequest->rcvdVendorSpecificHeaderOptions\r
                     && entityHandlerRequest->numRcvdVendorSpecificHeaderOptions)\r
             {\r
-                OIC_LOG (INFO, LISTENER_TAG, "Received vendor specific options");\r
+                NS_LOG (DEBUG, "Received vendor specific options");\r
                 uint8_t i = 0;\r
                 OCHeaderOption * rcvdOptions = entityHandlerRequest->rcvdVendorSpecificHeaderOptions;\r
                 for (i = 0; i < entityHandlerRequest->numRcvdVendorSpecificHeaderOptions; i++)\r
                 {\r
                     if (((OCHeaderOption) rcvdOptions[i]).protocolID == OC_COAP_ID)\r
                     {\r
-                        OIC_LOG_V(INFO, LISTENER_TAG, "Received option with OC_COAP_ID and ID %u with",\r
+                        OIC_LOG_V(DEBUG, LISTENER_TAG, "Received option with OC_COAP_ID and ID %u with",\r
                                 ((OCHeaderOption)rcvdOptions[i]).optionID );\r
 \r
-                        OIC_LOG_BUFFER(INFO, LISTENER_TAG, ((OCHeaderOption)rcvdOptions[i]).optionData,\r
+                        OIC_LOG_BUFFER(DEBUG, LISTENER_TAG, ((OCHeaderOption)rcvdOptions[i]).optionData,\r
                                 MAX_HEADER_OPTION_DATA_LENGTH);\r
                     }\r
                 }\r
@@ -143,7 +138,6 @@ OCEntityHandlerResult NSEntityHandlerNotificationCb(OCEntityHandlerFlag flag,
 OCEntityHandlerResult NSEntityHandlerMessageCb(OCEntityHandlerFlag flag,\r
         OCEntityHandlerRequest *entityHandlerRequest, void* callback)\r
 {\r
-    OIC_LOG_V (INFO, LISTENER_TAG, "Inside entity handler - flags: 0x%x", flag);\r
     NS_LOG(DEBUG, "NSEntityHandlerMessageCb - IN");\r
 \r
     OCEntityHandlerResult ehResult = OC_EH_OK;\r
@@ -157,7 +151,7 @@ OCEntityHandlerResult NSEntityHandlerMessageCb(OCEntityHandlerFlag flag,
     // Validate pointer\r
     if (!entityHandlerRequest)\r
     {\r
-        OIC_LOG (ERROR, LISTENER_TAG, "Invalid request pointer");\r
+        NS_LOG (ERROR,"Invalid request pointer");\r
         return OC_EH_ERROR;\r
     }\r
 \r
@@ -170,35 +164,31 @@ OCEntityHandlerResult NSEntityHandlerMessageCb(OCEntityHandlerFlag flag,
 \r
     if (flag & OC_REQUEST_FLAG)\r
     {\r
-        OIC_LOG (INFO, LISTENER_TAG, "Flag includes OC_REQUEST_FLAG");\r
+        NS_LOG(DEBUG, "Flag includes OC_REQUEST_FLAG");\r
 \r
         if (OC_REST_GET == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_GET from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_REST_GET");\r
             ehResult = OC_EH_OK;\r
         }\r
         else if (OC_REST_PUT == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_PUT from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_REST_PUT");\r
             ehResult = OC_EH_OK;\r
         }\r
         else if (OC_REST_POST == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_POST from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_REST_POST");\r
             ehResult = OC_EH_OK;\r
         }\r
         else if (OC_REST_DELETE == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_DELETE from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_REST_DELETE");\r
             ehResult = OC_EH_OK;\r
         }\r
         else\r
         {\r
-            OIC_LOG_V (INFO, LISTENER_TAG, "Received unsupported method %d from client",\r
+            NS_LOG_V(DEBUG, "Received unsupported method %d from client",\r
                     entityHandlerRequest->method);\r
             ehResult = OC_EH_OK;\r
         }\r
@@ -219,17 +209,17 @@ OCEntityHandlerResult NSEntityHandlerMessageCb(OCEntityHandlerFlag flag,
             if (entityHandlerRequest->rcvdVendorSpecificHeaderOptions\r
                     && entityHandlerRequest->numRcvdVendorSpecificHeaderOptions)\r
             {\r
-                OIC_LOG (INFO, LISTENER_TAG, "Received vendor specific options");\r
+                NS_LOG(DEBUG, "Received vendor specific options");\r
                 uint8_t i = 0;\r
                 OCHeaderOption * rcvdOptions = entityHandlerRequest->rcvdVendorSpecificHeaderOptions;\r
                 for (i = 0; i < entityHandlerRequest->numRcvdVendorSpecificHeaderOptions; i++)\r
                 {\r
                     if (((OCHeaderOption) rcvdOptions[i]).protocolID == OC_COAP_ID)\r
                     {\r
-                        OIC_LOG_V(INFO, LISTENER_TAG, "Received option with OC_COAP_ID and ID %u with",\r
+                        OIC_LOG_V(DEBUG, LISTENER_TAG, "Received option with OC_COAP_ID and ID %u with",\r
                                 ((OCHeaderOption)rcvdOptions[i]).optionID );\r
 \r
-                        OIC_LOG_BUFFER(INFO, LISTENER_TAG, ((OCHeaderOption)rcvdOptions[i]).optionData,\r
+                        OIC_LOG_BUFFER(DEBUG, LISTENER_TAG, ((OCHeaderOption)rcvdOptions[i]).optionData,\r
                                 MAX_HEADER_OPTION_DATA_LENGTH);\r
                     }\r
                 }\r
@@ -253,12 +243,10 @@ OCEntityHandlerResult NSEntityHandlerMessageCb(OCEntityHandlerFlag flag,
 \r
     if (flag & OC_OBSERVE_FLAG)\r
     {\r
-        OIC_LOG(DEBUG, LISTENER_TAG, "Flag includes OC_OBSERVE_FLAG");\r
         NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_OBSERVE_FLAG");\r
 \r
         if (OC_OBSERVE_REGISTER == entityHandlerRequest->obsInfo.action)\r
         {\r
-            OIC_LOG (DEBUG, LISTENER_TAG, "Received OC_OBSERVE_REGISTER from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerMessageCb - OC_OBSERVE_REGISTER");\r
             NS_LOG_V(DEBUG, "NSEntityHandlerMessageCb\n"\r
                     "Register message observerID : %d\n", entityHandlerRequest->obsInfo.obsId);\r
@@ -275,7 +263,6 @@ OCEntityHandlerResult NSEntityHandlerMessageCb(OCEntityHandlerFlag flag,
 OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,\r
         OCEntityHandlerRequest *entityHandlerRequest, void* callback)\r
 {\r
-    OIC_LOG_V (INFO, LISTENER_TAG, "Inside entity handler - flags: 0x%x", flag);\r
     NS_LOG(DEBUG, "NSEntityHandlerSyncCb - IN");\r
     OCEntityHandlerResult ehResult = OC_EH_OK;\r
     OCEntityHandlerResponse response =\r
@@ -288,7 +275,7 @@ OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,
     // Validate pointer\r
     if (!entityHandlerRequest)\r
     {\r
-        OIC_LOG (ERROR, LISTENER_TAG, "Invalid request pointer");\r
+        NS_LOG(ERROR, "Invalid request pointer");\r
         return OC_EH_ERROR;\r
     }\r
 \r
@@ -301,17 +288,15 @@ OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,
 \r
     if (flag & OC_REQUEST_FLAG)\r
     {\r
-        OIC_LOG (INFO, LISTENER_TAG, "Flag includes OC_REQUEST_FLAG");\r
+        NS_LOG(DEBUG, "Flag includes OC_REQUEST_FLAG");\r
 \r
         if (OC_REST_GET == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_GET from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_REST_GET");\r
             ehResult = OC_EH_OK;\r
         }\r
         else if (OC_REST_PUT == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_PUT from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_REST_PUT");\r
             ehResult = OC_EH_OK;\r
         }\r
@@ -321,7 +306,6 @@ OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,
                            And broadcast the sync data to all subscribers including provider app\r
                            to synchronize the notification message status. */\r
 \r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_POST from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_REST_POST");\r
 \r
             NSPushQueue(NOTIFICATION_SCHEDULER, TASK_RECV_READ,\r
@@ -330,12 +314,12 @@ OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,
         }\r
         else if (OC_REST_DELETE == entityHandlerRequest->method)\r
         {\r
-            OIC_LOG (INFO, LISTENER_TAG, "Received OC_REST_DELETE from client");\r
+            NS_LOG(DEBUG, "Received OC_REST_DELETE from client");\r
             ehResult = OC_EH_OK;\r
         }\r
         else\r
         {\r
-            OIC_LOG_V (INFO, LISTENER_TAG, "Received unsupported method %d from client",\r
+            NS_LOG_V(DEBUG, "Received unsupported method %d from client",\r
                     entityHandlerRequest->method);\r
             ehResult = OC_EH_OK;\r
         }\r
@@ -356,17 +340,17 @@ OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,
             if (entityHandlerRequest->rcvdVendorSpecificHeaderOptions\r
                     && entityHandlerRequest->numRcvdVendorSpecificHeaderOptions)\r
             {\r
-                OIC_LOG (INFO, LISTENER_TAG, "Received vendor specific options");\r
+                NS_LOG(DEBUG, "Received vendor specific options");\r
                 uint8_t i = 0;\r
                 OCHeaderOption * rcvdOptions = entityHandlerRequest->rcvdVendorSpecificHeaderOptions;\r
                 for (i = 0; i < entityHandlerRequest->numRcvdVendorSpecificHeaderOptions; i++)\r
                 {\r
                     if (((OCHeaderOption) rcvdOptions[i]).protocolID == OC_COAP_ID)\r
                     {\r
-                        OIC_LOG_V(INFO, LISTENER_TAG, "Received option with OC_COAP_ID and ID %u with",\r
+                        OIC_LOG_V(DEBUG, LISTENER_TAG, "Received option with OC_COAP_ID and ID %u with",\r
                                 ((OCHeaderOption)rcvdOptions[i]).optionID );\r
 \r
-                        OIC_LOG_BUFFER(INFO, LISTENER_TAG, ((OCHeaderOption)rcvdOptions[i]).optionData,\r
+                        OIC_LOG_BUFFER(DEBUG, LISTENER_TAG, ((OCHeaderOption)rcvdOptions[i]).optionData,\r
                                 MAX_HEADER_OPTION_DATA_LENGTH);\r
                     }\r
                 }\r
@@ -393,12 +377,10 @@ OCEntityHandlerResult NSEntityHandlerSyncCb(OCEntityHandlerFlag flag,
         /** Requested by consumers to synchronize notification message status.\r
             Store the observer IDs to storage or cache */\r
 \r
-        OIC_LOG(DEBUG, LISTENER_TAG, "Flag includes OC_OBSERVE_FLAG");\r
         NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_OBSERVE_FLAG");\r
 \r
         if (OC_OBSERVE_REGISTER == entityHandlerRequest->obsInfo.action)\r
         {\r
-            OIC_LOG (DEBUG, LISTENER_TAG, "Received OC_OBSERVE_REGISTER from client");\r
             NS_LOG(DEBUG, "NSEntityHandlerSyncCb - OC_OBSERVE_REGISTER");\r
             NS_LOG_V(DEBUG, "NSEntityHandlerSyncCb\n - "\r
                     "Register Sync observerID : %d\n", entityHandlerRequest->obsInfo.obsId);\r
@@ -420,12 +402,10 @@ void NSProviderConnectionStateListener(CATransportAdapter_t adapter, const char
     (void)adapter;\r
     (void)remote_address;\r
 \r
-    OIC_LOG (INFO, LISTENER_TAG, "Connection State Changed");\r
     NS_LOG(DEBUG, "NSProviderConnectionStateListener - IN");\r
 \r
     if (connected)\r
     {\r
-        OIC_LOG (INFO, LISTENER_TAG, "CONNECTED");\r
         NS_LOG(DEBUG, "CONNECTED");\r
 \r
         // Set Connection State\r
@@ -443,12 +423,10 @@ void NSProviderAdapterStateListener(CATransportAdapter_t adapter, bool enabled)
     // should be implementation\r
     (void)adapter;\r
 \r
-    OIC_LOG (INFO, LISTENER_TAG, "Adapter State Changed");\r
     NS_LOG(DEBUG, "NSProviderAdapterStateListener - IN");\r
 \r
     if (enabled)\r
     {\r
-        OIC_LOG (INFO, LISTENER_TAG, "CONNECTED");\r
         NS_LOG(DEBUG, "CONNECTED");\r
 \r
         // Set Connection State\r
@@ -481,16 +459,12 @@ NSSync * NSBuildOICNotificationSync(OCPayload * payload)
     OCRepPayload * repPayload = (OCRepPayload *)payload;\r
     if (!OCRepPayloadGetPropString(repPayload, NS_ATTRIBUTE_ID, &retSync->mMessageId))\r
     {\r
-        OIC_LOG(DEBUG, LISTENER_TAG, "id of received sync is null");\r
         OICFree(retSync);\r
         return NULL;\r
     }\r
     int64_t state;\r
     if (!OCRepPayloadGetPropInt(repPayload, NS_ATTRIBUTE_STATE, & state))\r
     {\r
-\r
-        OIC_LOG(DEBUG, LISTENER_TAG, "id of received sync is null");\r
-\r
         OICFree(retSync->mMessageId);\r
         OICFree(retSync);\r
         return NULL;\r
@@ -498,8 +472,8 @@ NSSync * NSBuildOICNotificationSync(OCPayload * payload)
 \r
     retSync->mState = (NSSyncTypes) state;\r
 \r
-    OIC_LOG_V(DEBUG, LISTENER_TAG, "Sync ID : %s", retSync->mMessageId);\r
-    OIC_LOG_V(DEBUG, LISTENER_TAG, "Sync State : %d", (int) retSync->mState);\r
+    NS_LOG_V(DEBUG, "Sync ID : %s", retSync->mMessageId);\r
+    NS_LOG_V(DEBUG, "Sync State : %d", (int) retSync->mState);\r
 \r
     NS_LOG(DEBUG, "NSBuildOICNotificationSync - OUT");\r
 \r
@@ -513,7 +487,7 @@ NSResult NSMakeTask(NSTaskType type, OCEntityHandlerRequest *request, NSTask * t
     task = (NSTask*) OICMalloc(sizeof(NSTask));\r
     if (!task)\r
     {\r
-        OIC_LOG(ERROR, LISTENER_TAG, PCF("Fail to allocate memory"));\r
+        NS_LOG(ERROR, "Fail to allocate memory");\r
         return NS_ERROR;\r
     }\r
 \r
index 46dcb81..7d91b33 100644 (file)
@@ -39,15 +39,19 @@ NSResult NSGetMessagePayload(NSMessage *msg, OCRepPayload** msgPayload)
 
     if (!*msgPayload)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, PCF("Failed to allocate payload"));
+        NS_LOG(ERROR, "Failed to allocate payload");
         return NS_ERROR;
     }
 
     OCRepPayloadSetUri(*msgPayload, NSGetNotificationMessageUri());
-    OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_ID, msg->mId);
-    OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_TITLE, msg->mTitle);
-    OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_TEXT, msg->mContentText);
-    OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_SOURCE, msg->mSource);
+    if(msg->mId)
+        OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_ID, msg->mId);
+    if(msg->mTitle)
+        OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_TITLE, msg->mTitle);
+    if(msg->mContentText)
+        OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_TEXT, msg->mContentText);
+    if(msg->mSource)
+        OCRepPayloadSetPropString(*msgPayload, NS_ATTRIBUTE_SOURCE, msg->mSource);
 
     NS_LOG(DEBUG, "NSGetMessagePayload - OUT");
     return NS_OK;
@@ -61,13 +65,17 @@ NSResult NSGetSyncPayload(NSSync *sync, OCRepPayload** syncPayload)
 
     if (!*syncPayload)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, PCF("Failed to allocate payload"));
+        NS_LOG(ERROR, "Failed to allocate payload");
         return NS_ERROR;
     }
 
     OCRepPayloadSetUri(*syncPayload, NSGetNotificationSyncUri());
-    OCRepPayloadSetPropString(*syncPayload, NS_ATTRIBUTE_ID, sync->mMessageId);
-    OCRepPayloadSetPropInt(*syncPayload, NS_ATTRIBUTE_STATE, sync->mState);
+
+    if(sync->mMessageId)
+    {
+        OCRepPayloadSetPropString(*syncPayload, NS_ATTRIBUTE_ID, sync->mMessageId);
+        OCRepPayloadSetPropInt(*syncPayload, NS_ATTRIBUTE_STATE, sync->mState);
+    }
 
     NS_LOG(DEBUG, "NSGetSyncPayload - OUT");
     return NS_OK;
@@ -75,7 +83,6 @@ NSResult NSGetSyncPayload(NSSync *sync, OCRepPayload** syncPayload)
 
 NSResult NSSendMessage(NSMessage *msg)
 {
-    OIC_LOG(DEBUG, NOTIFICATION_TAG, "Send Notification Message to consumer");
     NS_LOG(DEBUG, "NSSendMessage - IN");
 
     OCResourceHandle rHandle;
@@ -84,14 +91,12 @@ NSResult NSSendMessage(NSMessage *msg)
 
     if (NSPutMessageResource(msg, &rHandle) != NS_OK)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, PCF("Fail to put notification resource"));
-        NS_LOG(DEBUG, "fail to Put notification resource");
+        NS_LOG(ERROR, "fail to Put notification resource");
         return NS_ERROR;
     }
 
     if (consumerSubList->head == NULL)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, PCF("no observers"));
         NS_LOG(ERROR, "SubList->head is NULL, empty SubList");
         return NS_ERROR;
     }
@@ -100,7 +105,6 @@ NSResult NSSendMessage(NSMessage *msg)
 
     if (NSGetMessagePayload(msg, &payload) != NS_OK)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, PCF("Failed to allocate payload"));
         NS_LOG(ERROR, "fail to Get message payload");
         return NS_ERROR;
     }
@@ -139,7 +143,6 @@ NSResult NSSendMessage(NSMessage *msg)
 
     if (ocstackResult != OC_STACK_OK)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, "fail to send message");
         NS_LOG(ERROR, "fail to send message");
         OCRepPayloadDestroy(payload);
         return NS_ERROR;
@@ -154,7 +157,6 @@ NSResult NSSendMessage(NSMessage *msg)
 
 NSResult NSSendSync(NSSync *sync)
 {
-    OIC_LOG(DEBUG, NOTIFICATION_TAG, "Send Notification Sync to consumer");
     NS_LOG(DEBUG, "NSSendSync - IN");
 
     OCObservationId obArray[255] = { 0, };
@@ -164,7 +166,7 @@ NSResult NSSendSync(NSSync *sync)
     OCResourceHandle rHandle;
     if (NSPutSyncResource(sync, &rHandle) != NS_OK)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, PCF("Fail to put sync resource"));
+        NS_LOG(ERROR, PCF("Fail to put sync resource"));
         return NS_ERROR;
     }
 
@@ -185,7 +187,7 @@ NSResult NSSendSync(NSSync *sync)
     OCRepPayload* payload;
     if (NSGetSyncPayload(sync, &payload) != NS_OK)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, PCF("Failed to allocate payload"));
+        NS_LOG(ERROR, "Failed to allocate payload");
         return NS_ERROR;
     }
 
@@ -203,7 +205,7 @@ NSResult NSSendSync(NSSync *sync)
 
     if (ocstackResult != OC_STACK_OK)
     {
-        OIC_LOG(ERROR, NOTIFICATION_TAG, "fail to send Sync");
+        NS_LOG(ERROR, "fail to send Sync");
         OCRepPayloadDestroy(payload);
         return NS_ERROR;
 
@@ -219,7 +221,6 @@ void * NSNotificationSchedule(void *ptr)
 {
     if (ptr == NULL)
     {
-        OIC_LOG(DEBUG, NOTIFICATION_TAG, "Create NSNotifiactionSchedule");
         NS_LOG(DEBUG, "Create NSNotifiactionSchedule");
     }
 
@@ -233,13 +234,12 @@ void * NSNotificationSchedule(void *ptr)
             NSTask *node = NSHeadMsg[NOTIFICATION_SCHEDULER];
             NSHeadMsg[NOTIFICATION_SCHEDULER] = node->nextTask;
 
-            switch ((int)node->taskType)
+            switch (node->taskType)
             {
                 case TASK_SEND_NOTIFICATION:
                 {
                     NS_LOG(DEBUG, "CASE TASK_SEND_NOTIFICATION : ");
-                    NSMessage * nsMsg = (NSMessage *)node->taskData;
-                    NSSendMessage(nsMsg);
+                    NSSendMessage((NSMessage *)node->taskData);
                     break;
                 }
                 case TASK_SEND_READ:
@@ -253,8 +253,7 @@ void * NSNotificationSchedule(void *ptr)
                     break;
 
                 default:
-                    OIC_LOG(ERROR, NOTIFICATION_TAG, "Unknown type message");
-                    NS_LOG(ERROR, "Unknow type message");
+                    NS_LOG(ERROR, "Unknown type message");
                     break;
 
             }
@@ -264,5 +263,7 @@ void * NSNotificationSchedule(void *ptr)
         pthread_mutex_unlock(&NSMutex[NOTIFICATION_SCHEDULER]);
 
     }
+
+    NS_LOG(INFO, "Destroy NSNotificationSchedule");
     return NULL;
 }
index 85239a1..44adc18 100644 (file)
@@ -54,7 +54,6 @@ typedef struct
     OCResourceHandle handle;
     char* id;
     char* state;
-    NSDevice device;
 } NSSyncResource;
 
 NSNotificationResource NotificationResource;
@@ -66,7 +65,6 @@ NSResult NSCreateResource(char *uri)
     NS_LOG(DEBUG, "NSCreateResource - IN");
     if (!uri)
     {
-        OIC_LOG(ERROR, RESOURCE_TAG, "Resource URI cannot be NULL");
         NS_LOG(NS_ERROR, "Resource URI cannot be NULL");
         return NS_ERROR;
     }
@@ -82,7 +80,6 @@ NSResult NSCreateResource(char *uri)
         if (OCCreateResource(&NotificationResource.handle, NSType, NSInterface, NSUri,
                 NSEntityHandlerNotificationCb, NULL, OC_DISCOVERABLE) != OC_STACK_OK)
         {
-            OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to Create Notification Resource"));
             NS_LOG(NS_ERROR, "Fail to Create Notification Resource");
             return NS_ERROR;
         }
@@ -98,7 +95,6 @@ NSResult NSCreateResource(char *uri)
         if (OCCreateResource(&NotificationMessageResource.handle, NSMessageType, NSInterface,
                 NSMessageUri, NSEntityHandlerMessageCb, NULL, OC_OBSERVABLE) != OC_STACK_OK)
         {
-            OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to Create Notification Message Resource"));
             NS_LOG(NS_ERROR, "Fail to Create Notification Message Resource");
             return NS_ERROR;
         }
@@ -107,21 +103,18 @@ NSResult NSCreateResource(char *uri)
     {
         NotificationSyncResource.id = NULL;
         NotificationSyncResource.state = NULL;
-        memset(&NotificationSyncResource.device, 0, sizeof(NSDevice));
         NotificationSyncResource.handle = NULL;
 
         if (OCCreateResource(&(NotificationSyncResource.handle), NSSyncType, NSInterface, NSSyncUri,
                 NSEntityHandlerSyncCb, NULL, OC_OBSERVABLE) != OC_STACK_OK)
         {
-            OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to Create Notification Sync Resource"));
             NS_LOG(NS_ERROR, "Fail to Create Notification Sync Resource");
             return NS_ERROR;
         }
     }
     else
     {
-        OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to create resource with invalid URI"));
-        NS_LOG(DEBUG, "Fail to create resource with invalid URI");
+        NS_LOG(ERROR, "Fail to create resource with invalid URI");
         return NS_ERROR;
     }
 
@@ -131,27 +124,23 @@ NSResult NSCreateResource(char *uri)
 
 NSResult NSRegisterResource()
 {
-    OIC_LOG(INFO, RESOURCE_TAG, "NSRegisterResource");
     NS_LOG(DEBUG, "NSRegisterResource - IN");
 
     if (NSCreateResource(NSSyncUri) != NS_OK)
     {
-        OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to register Sync Resource"));
-        NS_LOG(DEBUG, "Fail to register Sync Resource");
+        NS_LOG(ERROR, "Fail to register Sync Resource");
         return NS_ERROR;
     }
 
     if (NSCreateResource(NSMessageUri) != NS_OK)
     {
-        OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to register Message Resource"));
-        NS_LOG(DEBUG, "Fail to register Message Resource");
+        NS_LOG(ERROR, "Fail to register Message Resource");
         return NS_ERROR;
     }
 
     if (NSCreateResource(NSUri) != NS_OK)
     {
-        OIC_LOG(ERROR, RESOURCE_TAG, PCF("Fail to register Notification Resource"));
-        NS_LOG(DEBUG, "Fail to register Notification Resource");
+        NS_LOG(ERROR, "Fail to register Notification Resource");
         return NS_ERROR;
     }
 
@@ -159,6 +148,32 @@ NSResult NSRegisterResource()
     return NS_OK;
 }
 
+NSResult NSUnRegisterResource()
+{
+    NS_LOG(DEBUG, "NSUnRegisterResource - IN");
+
+    if (OCDeleteResource(NotificationResource.handle) != OC_STACK_OK)
+    {
+        NS_LOG(ERROR, "Fail to Delete Notification Resource");
+        return NS_ERROR;
+    }
+
+    if (OCDeleteResource(NotificationMessageResource.handle) != OC_STACK_OK)
+    {
+        NS_LOG(ERROR, "Fail to Delete Notification Message Resource");
+        return NS_ERROR;
+    }
+
+    if (OCDeleteResource(NotificationSyncResource.handle) != OC_STACK_OK)
+    {
+        NS_LOG(ERROR, "Fail to Delete Notification Sync Resource");
+        return NS_ERROR;
+    }
+
+    NS_LOG(DEBUG, "NSUnRegisterResource - OUT");
+    return NS_OK;
+}
+
 NSResult NSPutNotificationResource(int accepter, OCResourceHandle * handle)
 {
     NS_LOG(DEBUG, "NSPutNotificationResource - IN");
@@ -175,15 +190,11 @@ NSResult NSPutNotificationResource(int accepter, OCResourceHandle * handle)
 
 NSResult NSPutMessageResource(NSMessage *msg, OCResourceHandle * handle)
 {
-    OIC_LOG(INFO, RESOURCE_TAG, "Put notification message to Resource");
     NS_LOG(DEBUG, "NSPutMessageResource - IN");
 
     if(msg != NULL)
     {
         NS_LOG(DEBUG, "NSMessage is valid");
-        NS_LOG_V(DEBUG, "msg -> mId : %s", msg->mId);
-        NS_LOG_V(DEBUG, "msg -> mTitle : %s", msg->mTitle);
-        NS_LOG_V(DEBUG, "msg -> mContentText : %s", msg->mContentText);
 
         NotificationMessageResource.id = OICStrdup(msg->mId);
         NotificationMessageResource.title = OICStrdup(msg->mTitle);
@@ -202,7 +213,6 @@ NSResult NSPutMessageResource(NSMessage *msg, OCResourceHandle * handle)
 
 NSResult NSPutSyncResource(NSSync *sync, OCResourceHandle * handle)
 {
-    OIC_LOG(INFO, RESOURCE_TAG, "Put notification sync to Resource");
     NS_LOG(DEBUG, "NSPutSyncResource - IN");
 
     (void) sync;
index 2f0d6ad..0dea4ea 100644 (file)
@@ -32,6 +32,8 @@ NSResult NSCreateResource(char *uri);
 
 NSResult NSRegisterResource();
 
+NSResult NSUnRegisterResource();
+
 NSResult NSPutNotificationResource(int accepter, OCResourceHandle * handle);
 
 NSResult NSPutMessageResource(NSMessage *msg, OCResourceHandle * handle);
index 8cac068..35d8567 100755 (executable)
@@ -38,7 +38,6 @@ void * NSNotificationSchedule(void *ptr);
 \r
 bool NSInitScheduler()\r
 {\r
-    OIC_LOG(INFO, SCHEDULER_TAG, "NSInitScheduler()");\r
     NS_LOG(DEBUG, "NSInitScheduler - IN");\r
 \r
     int i = 0;\r
@@ -113,24 +112,30 @@ bool NSStopScheduler()
 \r
     for (i = THREAD_COUNT - 1; i >= 0; --i)\r
     {\r
+        int status = -1;\r
 \r
         NSIsRunning[i] = false;\r
 \r
-        pthread_join(NSThread[i], (void *) NULL);\r
+        sem_post(&(NSSemaphore[i]));\r
+        pthread_join(NSThread[i], (void **) &status);\r
+\r
         NSThread[i] = 0;\r
 \r
         pthread_mutex_lock(&NSMutex[i]);\r
 \r
-        while (NSHeadMsg[i]->nextTask != NULL)\r
+        while (NSHeadMsg[i] != NULL)\r
         {\r
             NSTask* temp = NSHeadMsg[i];\r
             NSHeadMsg[i] = NSHeadMsg[i]->nextTask;\r
+            NSFreeData(i, NSHeadMsg[i]);\r
             OICFree(temp);\r
         }\r
 \r
         OICFree(NSHeadMsg[i]);\r
+        NSTailMsg[i] = NSHeadMsg[i] = NULL;\r
 \r
         pthread_mutex_unlock(&NSMutex[i]);\r
+        pthread_mutex_destroy(&NSMutex[i]);\r
     }\r
 \r
     NS_LOG(DEBUG, "NSStopScheduler - OUT");\r
@@ -140,6 +145,10 @@ bool NSStopScheduler()
 \r
 void NSPushQueue(NSSchedulerType schedulerType, NSTaskType taskType, void* data)\r
 {\r
+\r
+    if(NSIsRunning[schedulerType] == false)\r
+        return;\r
+\r
     pthread_mutex_lock(&NSMutex[schedulerType]);\r
 \r
     NS_LOG(DEBUG, "NSPushQueue - IN");\r
@@ -172,3 +181,86 @@ void NSPushQueue(NSSchedulerType schedulerType, NSTaskType taskType, void* data)
     pthread_mutex_unlock(&NSMutex[schedulerType]);\r
 }\r
 \r
+void NSFreeData(NSSchedulerType type, NSTask * task)\r
+{\r
+    NS_LOG(DEBUG, "NSFreeData - IN");\r
+\r
+    if (type == RESPONSE_SCHEDULER)\r
+    {\r
+        switch (task->taskType)\r
+        {\r
+            case TASK_CB_SUBSCRIPTION:\r
+                NS_LOG(DEBUG, "CASE TASK_CB_SUBSCRIPTION : Free");\r
+                NSFreeOCEntityHandlerRequest((OCEntityHandlerRequest*) task->taskData);\r
+                break;\r
+            case TASK_CB_SYNC:\r
+                NS_LOG(DEBUG, "CASE TASK_CB_SYNC : Free");\r
+                NSSync * sync = (NSSync*) task->taskData;\r
+                NSFreeSync(sync);\r
+                break;\r
+            default:\r
+                NS_LOG(DEBUG, "No Task Type");\r
+                break;\r
+        }\r
+    }\r
+    else if (type == DISCOVERY_SCHEDULER)\r
+    {\r
+        switch (task->taskType)\r
+        {\r
+            case TASK_START_PRESENCE:\r
+            case TASK_STOP_PRESENCE:\r
+            case TASK_REGISTER_RESOURCE:\r
+                NS_LOG(DEBUG, "Not required Free");\r
+                break;\r
+            default:\r
+                NS_LOG(DEBUG, "No Task Type");\r
+                break;\r
+        }\r
+    }\r
+    else if (type == SUBSCRIPTION_SCHEDULER)\r
+    {\r
+        switch (task->taskType)\r
+        {\r
+            case TASK_SEND_POLICY:\r
+            case TASK_RECV_SUBSCRIPTION:\r
+            case TASK_RECV_UNSUBSCRIPTION:\r
+            case TASK_SYNC_SUBSCRIPTION:\r
+                NS_LOG(DEBUG, "NSFreeOCEntityHandlerRequest : Free ");\r
+                NSFreeOCEntityHandlerRequest((OCEntityHandlerRequest*) task->taskData);\r
+                break;\r
+\r
+            case TASK_SEND_ALLOW:\r
+            case TASK_SEND_DENY:\r
+                NS_LOG(DEBUG, "NSFreeConsumer : Free ");\r
+                NSConsumer * consumer = (NSConsumer *) task->taskData;\r
+                NSFreeConsumer(consumer);\r
+                break;\r
+            default:\r
+                NS_LOG(DEBUG, "No Task Type");\r
+                break;\r
+        }\r
+    }\r
+    else if (type == NOTIFICATION_SCHEDULER)\r
+    {\r
+        switch (task->taskType)\r
+        {\r
+            case TASK_SEND_NOTIFICATION:\r
+            {\r
+                NS_LOG(DEBUG, "NSFreeMessage : Free ");\r
+                NSFreeMessage((NSMessage *)task->taskData);\r
+                break;\r
+            }\r
+            case TASK_SEND_READ:\r
+            case TASK_RECV_READ:\r
+                NS_LOG(DEBUG, "NSFreeSync : Free ");\r
+                NSFreeSync((NSSync*) task->taskData);\r
+                break;\r
+\r
+            default:\r
+                NS_LOG(DEBUG, "No Task Type");\r
+                break;\r
+        }\r
+    }\r
+\r
+    NS_LOG(DEBUG, "NSFreeData - OUT");\r
+}\r
index 8d89db5..961e193 100755 (executable)
@@ -32,6 +32,7 @@
 #include "logger.h"\r
 #include "oic_malloc.h"\r
 #include "oic_string.h"\r
+#include "NSUtil.h"\r
 \r
 extern NSTask* NSHeadMsg[THREAD_COUNT]; // Current MSG;\r
 extern NSTask* NSTailMsg[THREAD_COUNT]; // Recently MSG;\r
@@ -51,5 +52,6 @@ bool NSInitScheduler();
 bool NSStartScheduler();\r
 bool NSStopScheduler();\r
 void NSPushQueue(NSSchedulerType, NSTaskType, void*);\r
+void NSFreeData(NSSchedulerType, NSTask * );\r
 \r
 #endif /* _PROVIDER_SCHEDULER_H_ */\r
index 54a27c1..49c76fd 100644 (file)
@@ -37,12 +37,10 @@ NSResult NSSetSubscriptionAcceptPolicy(NSAccessPolicy policy)
 \r
     if (policy == NS_ACCEPTER_PROVIDER)\r
     {\r
-        OIC_LOG(INFO, SUBSCRIPTION_TAG, "Place Provider as a subscription accepter");\r
         NS_LOG(DEBUG, "Place Provider as a subscription accepter");\r
     }\r
     else if (policy == NS_ACCEPTER_CONSUMER)\r
     {\r
-        OIC_LOG(INFO, SUBSCRIPTION_TAG, "Place Consumer as a subscription accepter");\r
         NS_LOG(DEBUG, "Place Consumer as a subscription accepter");\r
     }\r
 \r
@@ -59,7 +57,6 @@ int NSGetSubscriptionAccepter()
 \r
 NSResult NSSendAccessPolicyResponse(OCEntityHandlerRequest *entityHandlerRequest)\r
 {\r
-    OIC_LOG(DEBUG, NOTIFICATION_TAG, "Send Notification Policy to consumer");\r
     NS_LOG(DEBUG, "NSSendAccessPolicyResponse - IN");\r
 \r
     // put notification resource\r
@@ -67,7 +64,6 @@ NSResult NSSendAccessPolicyResponse(OCEntityHandlerRequest *entityHandlerRequest
     if (NSPutNotificationResource(NSGetSubscriptionAccepter(), &notificationResourceHandle)\r
             != NS_OK)\r
     {\r
-        OIC_LOG(ERROR, SUBSCRIPTION_TAG, PCF("Failed to put notification resource"));\r
         NS_LOG(ERROR, "Fail to put notification resource");\r
         return NS_ERROR;\r
     }\r
@@ -82,7 +78,6 @@ NSResult NSSendAccessPolicyResponse(OCEntityHandlerRequest *entityHandlerRequest
     OCRepPayload* payload = OCRepPayloadCreate();\r
     if (!payload)\r
     {\r
-        OIC_LOG(ERROR, SUBSCRIPTION_TAG, PCF("Failed to allocate Payload"));\r
         NS_LOG(ERROR, "payload is NULL");\r
         return NS_ERROR;\r
     }\r
@@ -101,7 +96,6 @@ NSResult NSSendAccessPolicyResponse(OCEntityHandlerRequest *entityHandlerRequest
     // Send Response\r
     if (OCDoResponse(&response) != OC_STACK_OK)\r
     {\r
-        OIC_LOG(ERROR, SUBSCRIPTION_TAG, PCF("Fail to send response"));\r
         NS_LOG(ERROR, "Fail to AccessPolicy send response");\r
         return NS_ERROR;\r
     }\r
@@ -114,8 +108,6 @@ NSResult NSSendAccessPolicyResponse(OCEntityHandlerRequest *entityHandlerRequest
 \r
 void NSHandleSubscription(OCEntityHandlerRequest *entityHandlerRequest, NSResourceType resourceType)\r
 {\r
-\r
-    OIC_LOG(INFO, SUBSCRIPTION_TAG, "Start to subscription process");\r
     NS_LOG(DEBUG, "NSHandleSubscription - IN");\r
 \r
     if (resourceType == NS_RESOURCE_MESSAGE)\r
@@ -180,7 +172,6 @@ void NSHandleSubscription(OCEntityHandlerRequest *entityHandlerRequest, NSResour
 \r
 void NSHandleUnsubscription(OCEntityHandlerRequest *entityHandlerRequest)\r
 {\r
-    OIC_LOG(INFO, SUBSCRIPTION_TAG, "Start to unsubscription process");\r
     NS_LOG(DEBUG, "NSHandleUnsubscription - IN");\r
 \r
     NSCacheElement * element = (NSCacheElement *) OICMalloc(sizeof(NSCacheElement));\r
@@ -197,7 +188,6 @@ void NSHandleUnsubscription(OCEntityHandlerRequest *entityHandlerRequest)
 \r
     if (NSCacheWrite(consumerSubList, element) != NS_OK)\r
     {\r
-        OIC_LOG(ERROR, SUBSCRIPTION_TAG, "fail to write consumer white list");\r
         NS_LOG(ERROR, "fail to write consumer white list");\r
     }\r
 \r
@@ -207,7 +197,6 @@ void NSHandleUnsubscription(OCEntityHandlerRequest *entityHandlerRequest)
 \r
 void NSAskAcceptanceToUser(OCEntityHandlerRequest *entityHandlerRequest)\r
 {\r
-    OIC_LOG(DEBUG, SUBSCRIPTION_TAG, "Ask for user to Allow or Deny");\r
     NS_LOG(DEBUG, "NSAskAcceptanceToUser - IN");\r
 \r
     NSPushQueue(RESPONSE_SCHEDULER, TASK_CB_SUBSCRIPTION, entityHandlerRequest);\r
@@ -222,7 +211,6 @@ NSResult NSSendResponse(const char * id, bool accepted)
     OCRepPayload* payload = OCRepPayloadCreate();\r
     if (!payload)\r
     {\r
-        OIC_LOG(ERROR, SUBSCRIPTION_TAG, PCF("Failed to allocate Payload"));\r
         NS_LOG(ERROR, "fail to create playload");\r
         return NS_ERROR;\r
     }\r
@@ -230,7 +218,6 @@ NSResult NSSendResponse(const char * id, bool accepted)
     OCResourceHandle rHandle;\r
     if (NSPutMessageResource(NULL, &rHandle) != NS_OK)\r
     {\r
-        OIC_LOG(ERROR, NOTIFICATION_TAG, PCF("Fail to put notification resource"));\r
         NS_LOG(ERROR, "Fail to put notification resource");\r
         return NS_ERROR;\r
     }\r
@@ -251,7 +238,6 @@ NSResult NSSendResponse(const char * id, bool accepted)
     if (OCNotifyListOfObservers(rHandle, (OCObservationId*)&subData->messageObId, 1, payload, OC_HIGH_QOS)\r
             != OC_STACK_OK)\r
     {\r
-        OIC_LOG(ERROR, SUBSCRIPTION_TAG, "fail to send Acceptance");\r
         NS_LOG(ERROR, "fail to send Acceptance");\r
         OCRepPayloadDestroy(payload);\r
         return NS_ERROR;\r
@@ -265,12 +251,11 @@ NSResult NSSendResponse(const char * id, bool accepted)
 \r
 NSResult NSSendSubscriptionResponse(OCEntityHandlerRequest *entityHandlerRequest, bool accepted)\r
 {\r
-    OIC_LOG(INFO, SUBSCRIPTION_TAG, "Send ACCEPT message to consumer");\r
     NS_LOG(DEBUG, "NSSendSubscriptionResponse - IN");\r
 \r
     if (!entityHandlerRequest)\r
     {\r
-        OIC_LOG (ERROR, LISTENER_TAG, "Invalid request pointer");\r
+        NS_LOG(ERROR, "Invalid request pointer");\r
         return OC_EH_ERROR;\r
     }\r
 \r
@@ -289,7 +274,6 @@ NSResult NSSendSubscriptionResponse(OCEntityHandlerRequest *entityHandlerRequest
 \r
         if (NSCacheWrite(consumerSubList, element) != NS_OK)\r
         {\r
-            OIC_LOG(ERROR, SUBSCRIPTION_TAG, "fail to write consumer white list");\r
             NS_LOG(ERROR, "fail to write consumer white list");\r
         }\r
     }\r
@@ -303,10 +287,8 @@ NSResult NSSendSubscriptionResponse(OCEntityHandlerRequest *entityHandlerRequest
 \r
 void * NSSubScriptionSchedule(void *ptr)\r
 {\r
-\r
     if (ptr == NULL)\r
     {\r
-        OIC_LOG(INFO, SUBSCRIPTION_TAG, "Create NSSubscriptionSchedule");\r
         NS_LOG(DEBUG, "Create NSSubScriptionSchedule");\r
     }\r
 \r
@@ -343,32 +325,26 @@ void * NSSubScriptionSchedule(void *ptr)
                     NS_LOG(DEBUG, "CASE TASK_SEND_ALLOW : ");\r
                     NSConsumer * consumer = (NSConsumer *) node->taskData;\r
 \r
-                    NSCacheSubData * subData = (NSCacheSubData *) OICMalloc(sizeof(NSCacheSubData));\r
-                    subData->id = OICStrdup(consumer->mId);\r
-                    subData->isWhite = true;\r
-                    subData->messageObId = 0;\r
-                    subData->syncObId = 0;\r
-\r
-                    NSCacheUpdateSubScriptionState(consumerSubList, subData);\r
-                    NSSendResponse(consumer->mId, true);\r
+                    char * id = OICStrdup(consumer->mDeviceId);\r
 \r
+                    NSCacheUpdateSubScriptionState(consumerSubList, id, true);\r
+                    NSSendResponse(id, true);\r
+                    OICFree(id);\r
+                    NSFreeConsumer(consumer);\r
                     break;\r
                 }\r
                 case TASK_SEND_DENY:\r
                 {\r
                     NS_LOG(DEBUG, "CASE TASK_SEND_DENY : ");\r
                     NSConsumer * consumer = (NSConsumer *) node->taskData;\r
-                    int * pObId = (int *) consumer->mUserData;\r
 \r
-                    NSCacheSubData * subData = (NSCacheSubData *) OICMalloc(sizeof(NSCacheSubData));\r
-                    subData->id = OICStrdup(consumer->mId);\r
-                    subData->isWhite = false;\r
-                    subData->messageObId = 0;\r
-                    subData->syncObId = 0;\r
+                    char * id = OICStrdup(consumer->mDeviceId);\r
+\r
+                    NSCacheUpdateSubScriptionState(consumerSubList, id, false);\r
+                    NSSendResponse(id, false);\r
+                    OICFree(id);\r
+                    NSFreeConsumer(consumer);\r
 \r
-                    NSCacheUpdateSubScriptionState(consumerSubList, subData);\r
-                    printf("observer ID = %d\n", *pObId);\r
-                    NSSendResponse(consumer->mId, false);\r
                     break;\r
                 }\r
                 case TASK_SYNC_SUBSCRIPTION:\r
@@ -386,5 +362,6 @@ void * NSSubScriptionSchedule(void *ptr)
         pthread_mutex_unlock(&NSMutex[SUBSCRIPTION_SCHEDULER]);\r
 \r
     }\r
+    NS_LOG(INFO, "Destroy NSSubScriptionSchedule");\r
     return NULL;\r
 }\r
index 0746409..b807d41 100644 (file)
@@ -23,7 +23,6 @@ static NSConnectionState NSProviderConnectionState;
 \r
 void NSSetProviderConnectionState(NSConnectionState state)\r
 {\r
-    OIC_LOG(INFO, SUBSCRIPTION_TAG, "Change Connection State");\r
     NS_LOG(DEBUG, "NSSetProviderConnectionState");\r
 \r
     NSProviderConnectionState = state;\r
@@ -31,8 +30,7 @@ void NSSetProviderConnectionState(NSConnectionState state)
 \r
 NSConnectionState NSGetProviderConnectionState()\r
 {\r
-    OIC_LOG(INFO, SUBSCRIPTION_TAG, "Change Connection State");\r
-    //NS_LOG(DEBUG, "NSGetProviderConnectionState");\r
+    NS_LOG(DEBUG, "Change Connection State");\r
 \r
     return NSProviderConnectionState;\r
 }\r
index 476d892..374afd2 100755 (executable)
@@ -72,27 +72,27 @@ NSCacheElement * NSCacheRead(NSCacheList * list, const char * findId)
     return NULL;\r
 }\r
 \r
-NSResult NSCacheUpdateSubScriptionState(NSCacheList * list, NSCacheSubData * updateData)\r
+NSResult NSCacheUpdateSubScriptionState(NSCacheList * list, char * id, bool state)\r
 {\r
     pthread_mutex_lock(&NSCacheMutex);\r
 \r
     NS_LOG(DEBUG, "NSCacheUpdateSubScriptionState - IN");\r
 \r
-    if (updateData == NULL)\r
+    if (id == NULL)\r
     {\r
-        NS_LOG(DEBUG, "updateData is NULL");\r
+        NS_LOG(DEBUG, "id is NULL");\r
         pthread_mutex_unlock(&NSCacheMutex);\r
         return NS_ERROR;\r
     }\r
 \r
     pthread_mutex_unlock(&NSCacheMutex);\r
-    NSCacheElement * it = NSCacheRead(list, updateData->id);\r
+    NSCacheElement * it = NSCacheRead(list, id);\r
     pthread_mutex_lock(&NSCacheMutex);\r
 \r
     if (it)\r
     {\r
         NSCacheSubData * itData = (NSCacheSubData *) it->data;\r
-        if (strcmp(itData->id, updateData->id) == 0)\r
+        if (strcmp(itData->id, id) == 0)\r
         {\r
             NS_LOG(DEBUG, "Update Data - IN");\r
 \r
@@ -101,12 +101,9 @@ NSResult NSCacheUpdateSubScriptionState(NSCacheList * list, NSCacheSubData * upd
             NS_LOG_V(DEBUG, "currData_SyncObID = %d", itData->syncObId);\r
             NS_LOG_V(DEBUG, "currData_IsWhite = %d", itData->isWhite);\r
 \r
-            NS_LOG_V(DEBUG, "updateData_ID = %s", updateData->id);\r
-            NS_LOG_V(DEBUG, "updateData_MsgObID = %d", updateData->messageObId);\r
-            NS_LOG_V(DEBUG, "updateData_SyncObID = %d", updateData->syncObId);\r
-            NS_LOG_V(DEBUG, "updateData_IsWhite = %d", updateData->isWhite);\r
+            NS_LOG_V(DEBUG, "update state = %d", state);\r
 \r
-            itData->isWhite = updateData->isWhite;\r
+            itData->isWhite = state;\r
 \r
             NS_LOG(DEBUG, "Update Data - OUT");\r
             pthread_mutex_unlock(&NSCacheMutex);\r
index e4a7b50..1668722 100755 (executable)
@@ -40,7 +40,7 @@ bool NSProviderCompareIdCacheData(NSCacheType, void *, const char *);
 \r
 bool NSProviderIsFoundCacheData(NSCacheType, void *, void*);\r
 \r
-NSResult NSCacheUpdateSubScriptionState(NSCacheList *, NSCacheSubData *);\r
+NSResult NSCacheUpdateSubScriptionState(NSCacheList *, char *, bool);\r
 \r
 pthread_mutex_t NSCacheMutex;\r
 \r