Update snapshot(2018-01-24) 63/168163/1 accepted/tizen/4.0/unified/20180131.050307 submit/tizen_4.0/20180125.015119
authorHongkuk, Son <hongkuk.son@samsung.com>
Wed, 24 Jan 2018 15:19:51 +0000 (00:19 +0900)
committerHongkuk, Son <hongkuk.son@samsung.com>
Wed, 24 Jan 2018 15:20:30 +0000 (00:20 +0900)
Signed-off-by: Hongkuk, Son <hongkuk.son@samsung.com>
Change-Id: Ib5c6f3801761bdf022ebf8a56291e104cc5e6e4d

packaging/snapshot_history.txt
resource/csdk/stack/include/ocstack.h
resource/csdk/stack/src/ocobserve.c
resource/csdk/stack/src/ocstack.c
resource/src/InProcClientWrapper.cpp
resource/src/InProcServerWrapper.cpp
service/easy-setup/sampleapp/enrollee/tizen-sdb/EnrolleeSample/scons/SConscript

index e4547b4..9576bd0 100755 (executable)
@@ -1,3 +1,9 @@
+http://suprem.sec.samsung.net/jira/browse/CONPRO-1206
+
+commit_info_2018-01-24.txt
+
+commit_id: 20b205f88e5f8262604dc7205e14b5749309edef
+----------------------------------------------------------------------------------------------------------------------------------
 http://suprem.sec.samsung.net/jira/browse/CONPRO-1198
 
 commit_info_2018-01-17.txt
index b541552..3ee7ec3 100644 (file)
@@ -693,7 +693,7 @@ OCStackResult
 OCSetHeaderOption(OCHeaderOption* ocHdrOpt,
                   size_t* numOptions,
                   uint16_t optionID,
-                  void* optionData,
+                  const void* optionData,
                   size_t optionDataLength);
 
 /**
index 4fa079b..9fde469 100644 (file)
@@ -598,8 +598,10 @@ ResourceObserver* GetObserverUsingId (const OCObservationId observeId)
         {
             if (out->observeId == observeId)
             {
+                OIC_LOG(INFO, TAG, "Found in observer list");
+                ResourceObserver *observer = CloneObserverNode(out);
                 oc_mutex_unlock(g_serverObsListMutex);
-                return CloneObserverNode(out);
+                return observer;
             }
             CheckTimedOutObserver(out);
         }
@@ -872,16 +874,16 @@ GetObserveHeaderOption (uint32_t * observationOption,
     return OC_STACK_OK;
 }
 
-OCStackResult InitializeObseverList()
+OCStackResult InitializeObserverList()
 {
-    OIC_LOG(DEBUG, TAG, "InitializeObseverList IN");
+    OIC_LOG(DEBUG, TAG, "InitializeObserverList IN");
 
     if (NULL == g_serverObsListMutex)
     {
         g_serverObsListMutex = oc_mutex_new();
     }
 
-    OIC_LOG(DEBUG, TAG, "InitializeObseverList OUT");
+    OIC_LOG(DEBUG, TAG, "InitializeObserverList OUT");
     return OC_STACK_OK;
 }
 
@@ -889,8 +891,6 @@ void TerminateObserverList()
 {
     OIC_LOG(DEBUG, TAG, "TerminateObserverList IN");
 
-    DeleteObserverList();
-
     if (NULL != g_serverObsListMutex)
     {
         oc_mutex_free(g_serverObsListMutex);
index 8e7253f..3051ad9 100644 (file)
@@ -2527,7 +2527,7 @@ OCStackResult OCInit2(OCMode mode, OCTransportFlags serverFlags, OCTransportFlag
     }
 #endif
 
-    InitializeObseverList();
+    InitializeObserverList();
 
 exit:
     if(result != OC_STACK_OK)
@@ -2585,7 +2585,7 @@ OCStackResult OCStop()
 
     TerminateScheduleResourceList();
     // Remove all observers
-    TerminateObserverList();
+    DeleteObserverList();
     // Free memory dynamically allocated for resources
     deleteAllResources();
     // Remove all the client callbacks
@@ -2597,6 +2597,9 @@ OCStackResult OCStop()
     // TODO after BeachHead delivery: consolidate into single SRMDeInit()
     SRMDeInitPolicyEngine();
 
+    // Destroy Observer List Mutex
+    TerminateObserverList();
+
     stackState = OC_STACK_UNINITIALIZED;
     return OC_STACK_OK;
 }
@@ -5333,7 +5336,7 @@ OCStackResult OCGetResourceIns(OCResourceHandle handle, int64_t *ins)
 #endif
 
 OCStackResult OCSetHeaderOption(OCHeaderOption* ocHdrOpt, size_t* numOptions, uint16_t optionID,
-                                void* optionData, size_t optionDataLength)
+                                const void* optionData, size_t optionDataLength)
 {
     if (!ocHdrOpt)
     {
index b4a2af8..ee47425 100644 (file)
@@ -1571,18 +1571,19 @@ namespace OC
             return nullptr;
         }
 
-        OCHeaderOption* options = new OCHeaderOption[headerOptions.size()];
-        int i = 0;
+        OCHeaderOption* options = new OCHeaderOption[headerOptions.size()]();
+
+        size_t numOptions = 0;
         for (auto it=headerOptions.begin(); it != headerOptions.end(); ++it)
         {
-            options[i] = OCHeaderOption();
-            options[i].protocolID = OC_COAP_ID;
-            options[i].optionID = it->getOptionID();
-            options[i].optionLength = it->getOptionData().length() + 1;
-            strncpy((char*)options[i].optionData, it->getOptionData().c_str(),
-                sizeof(options[i].optionLength) -1 );
-            options[i].optionData[sizeof(options[i].optionLength) - 1] = 0;
-            i++;
+            OCStackResult ret = OCSetHeaderOption(options, &numOptions, it->getOptionID(),
+                                    it->getOptionData().c_str(), it->getOptionData().length());
+            if (OC_STACK_OK != ret)
+            {
+                OIC_LOG_V(ERROR, TAG, "Failed to convert vnd header options! (error=%d)", ret);
+                delete[] options;
+                return nullptr;
+            }
         }
 
         return options;
index 0659116..2766816 100644 (file)
@@ -87,16 +87,17 @@ void formResourceRequest(OCEntityHandlerFlag flag,
             {
                 //Set the header options here.
                 uint16_t optionID;
-                std::string optionData;
+                char optionData[MAX_HEADER_OPTION_DATA_LENGTH + 1];
                 HeaderOptions headerOptions;
 
+                optionData[MAX_HEADER_OPTION_DATA_LENGTH] = '\0';
                 for(int i = 0;
                     i < entityHandlerRequest->numRcvdVendorSpecificHeaderOptions;
                     i++)
                 {
                     optionID = entityHandlerRequest->rcvdVendorSpecificHeaderOptions[i].optionID;
-                    optionData = reinterpret_cast<const char*>
-                             (entityHandlerRequest->rcvdVendorSpecificHeaderOptions[i].optionData);
+                    memcpy(optionData, entityHandlerRequest->rcvdVendorSpecificHeaderOptions[i].optionData,
+                        MAX_HEADER_OPTION_DATA_LENGTH);
                     HeaderOption::OCHeaderOption headerOption(optionID, optionData);
                     headerOptions.push_back(headerOption);
                 }
index 56ae07b..a458081 100644 (file)
@@ -43,10 +43,10 @@ elif routing == 'EP':
        env.AppendUnique(CPPDEFINES = ['ROUTING_EP'])
 
 env.Append(LIBS=['-lgobject-2.0', '-lglib-2.0', '-lgio-2.0', '-lgthread-2.0'])
-env.PrependUnique(LIBS = ['oc', 'octbstack', 'oc_logger', 'connectivity_abstraction','coap', 'libESEnrolleeSDK','pthread'])
+env.PrependUnique(LIBS = ['oc', 'octbstack', 'oc_logger', 'connectivity_abstraction', 'libESEnrolleeSDK','pthread'])
 
 if secured == '1':
        env.PrependUnique(CPPPATH = [root_dir + '/external/inc/'])
        env.AppendUnique(CPPDEFINES = ['__WITH_DTLS__'])
 
-env.Program('enrollee_wifi', [sample_dir + 'enrolleewifi.cpp', sample_dir + 'easysetup_wifi_conn.c'])
\ No newline at end of file
+env.Program('enrollee_wifi', [sample_dir + 'enrolleewifi.cpp', sample_dir + 'easysetup_wifi_conn.c'])