+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
OCSetHeaderOption(OCHeaderOption* ocHdrOpt,
size_t* numOptions,
uint16_t optionID,
- void* optionData,
+ const void* optionData,
size_t optionDataLength);
/**
{
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);
}
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;
}
{
OIC_LOG(DEBUG, TAG, "TerminateObserverList IN");
- DeleteObserverList();
-
if (NULL != g_serverObsListMutex)
{
oc_mutex_free(g_serverObsListMutex);
}
#endif
- InitializeObseverList();
+ InitializeObserverList();
exit:
if(result != OC_STACK_OK)
TerminateScheduleResourceList();
// Remove all observers
- TerminateObserverList();
+ DeleteObserverList();
// Free memory dynamically allocated for resources
deleteAllResources();
// Remove all the client callbacks
// TODO after BeachHead delivery: consolidate into single SRMDeInit()
SRMDeInitPolicyEngine();
+ // Destroy Observer List Mutex
+ TerminateObserverList();
+
stackState = OC_STACK_UNINITIALIZED;
return OC_STACK_OK;
}
#endif
OCStackResult OCSetHeaderOption(OCHeaderOption* ocHdrOpt, size_t* numOptions, uint16_t optionID,
- void* optionData, size_t optionDataLength)
+ const void* optionData, size_t optionDataLength)
{
if (!ocHdrOpt)
{
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;
{
//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);
}
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'])