#endif //_ENABLE_MULTIPLE_OWNER_
#endif // __WITH_DTLS__ or __WITH_TLS__
-static OCEntityHandlerResult HandlePostRequest(const OCEntityHandlerRequest * ehRequest)
+static OCEntityHandlerResult HandlePostRequest(OCEntityHandlerRequest * ehRequest)
{
OCEntityHandlerResult ret = OC_EH_ERROR;
OIC_LOG(DEBUG, TAG, "HandleCREDPostRequest IN");
const OicSecDoxm_t* doxm = GetDoxmResourceData();
if(doxm)
{
- if(!doxm->owned && previousMsgId != ehRequest->messageID)
+ if(!doxm->owned)
{
- OIC_LOG(WARNING, TAG, "The operation failed during handle DOXM request,"\
- "DOXM will be reverted.");
- RestoreDoxmToInitState();
- RestorePstatToInitState();
+ OIC_LOG(WARNING, TAG, "The operation failed during handle DOXM request");
+
+ if((OC_ADAPTER_IP == ehRequest->devAddr.adapter && previousMsgId != ehRequest->messageID)
+ || OC_ADAPTER_TCP == ehRequest->devAddr.adapter)
+ {
+ RestoreDoxmToInitState();
+ RestorePstatToInitState();
+ OIC_LOG(WARNING, TAG, "DOXM will be reverted.");
+ }
}
}
else
}
else
{
- previousMsgId = ehRequest->messageID;
+ if(OC_ADAPTER_IP == ehRequest->devAddr.adapter)
+ {
+ previousMsgId = ehRequest->messageID++;
+ }
}
//Send response to request originator
ret = ((SendSRMResponse(ehRequest, ret, NULL, 0)) == OC_STACK_OK) ?
#endif //_ENABLE_MULTIPLE_OWNER_
#endif // defined(__WITH_DTLS__) || defined (__WITH_TLS__)
-static OCEntityHandlerResult HandleDoxmPostRequest(const OCEntityHandlerRequest * ehRequest)
+static OCEntityHandlerResult HandleDoxmPostRequest(OCEntityHandlerRequest * ehRequest)
{
OIC_LOG (DEBUG, TAG, "Doxm EntityHandle processing POST request");
OCEntityHandlerResult ehRet = OC_EH_ERROR;
ehRet = OC_EH_ERROR;
}
}
- else if(previousMsgId != ehRequest->messageID)
+ else if(OC_ADAPTER_TCP == ehRequest->devAddr.adapter)
{
if(OC_STACK_OK == GeneratePin(ranPin, sizeof(ranPin)))
{
*/
if(gDoxm)
{
- if(!gDoxm->owned && previousMsgId != ehRequest->messageID)
+ if(!gDoxm->owned)
{
- OIC_LOG(WARNING, TAG, "The operation failed during handle DOXM request,"\
- "DOXM will be reverted.");
- RestoreDoxmToInitState();
- RestorePstatToInitState();
+ OIC_LOG(WARNING, TAG, "The operation failed during handle DOXM request");
+
+ if((OC_ADAPTER_IP == ehRequest->devAddr.adapter && previousMsgId != ehRequest->messageID)
+ || OC_ADAPTER_TCP == ehRequest->devAddr.adapter)
+ {
+ RestoreDoxmToInitState();
+ RestorePstatToInitState();
+ OIC_LOG(WARNING, TAG, "DOXM will be reverted.");
+ }
}
}
else
}
else
{
- previousMsgId = ehRequest->messageID;
+ previousMsgId = ehRequest->messageID++;
}
//Send payload to request originator
* resource or create a new resource.
* For pstat, it updates only tm and om.
*/
-static OCEntityHandlerResult HandlePstatPostRequest(const OCEntityHandlerRequest *ehRequest)
+static OCEntityHandlerResult HandlePstatPostRequest(OCEntityHandlerRequest *ehRequest)
{
OCEntityHandlerResult ehRet = OC_EH_ERROR;
OIC_LOG(INFO, TAG, "HandlePstatPostRequest processing POST request");
OicSecPstat_t *pstat = NULL;
- static uint16_t prevMsgId = 0;
+ static uint16_t previousMsgId = 0;
if (ehRequest->payload && NULL != gPstat)
{
const OicSecDoxm_t* doxm = GetDoxmResourceData();
if(doxm)
{
- if(!doxm->owned && prevMsgId != ehRequest->messageID)
+ if(!doxm->owned)
{
- RestoreDoxmToInitState();
- RestorePstatToInitState();
+ OIC_LOG(WARNING, TAG, "The operation failed during handle DOXM request");
+
+ if((OC_ADAPTER_IP == ehRequest->devAddr.adapter && previousMsgId != ehRequest->messageID)
+ || OC_ADAPTER_TCP == ehRequest->devAddr.adapter)
+ {
+ RestoreDoxmToInitState();
+ RestorePstatToInitState();
+ OIC_LOG(WARNING, TAG, "DOXM will be reverted.");
+ }
}
}
else
}
else
{
- prevMsgId = ehRequest->messageID;
+ if(ehRequest->devAddr.adapter == OC_ADAPTER_IP)
+ {
+ previousMsgId = ehRequest->messageID++;
+ }
}
// Send response payload to request originator
{
int start = 0;
//First option always with option ID is COAP_OPTION_OBSERVE if it is available.
- if(responseInfo->info.options[0].optionID == COAP_OPTION_OBSERVE)
+ if(responseInfo->info.options
+ && responseInfo->info.options[0].optionID == COAP_OPTION_OBSERVE)
{
size_t i;
uint32_t observationOption;
for (uint8_t i = start; i < responseInfo->info.numOptions; i++)
{
- memcpy (&(response.rcvdVendorSpecificHeaderOptions[i-start]),
- &(responseInfo->info.options[i]), sizeof(OCHeaderOption));
+ if(&(responseInfo->info.options[i]))
+ {
+ memcpy (&(response.rcvdVendorSpecificHeaderOptions[i-start]),
+ &(responseInfo->info.options[i]), sizeof(OCHeaderOption));
+ }
}
}
return;
}
serverRequest.numRcvdVendorSpecificHeaderOptions = tempNum;
- if (serverRequest.numRcvdVendorSpecificHeaderOptions)
+ if (serverRequest.numRcvdVendorSpecificHeaderOptions && requestInfo->info.options)
{
memcpy (&(serverRequest.rcvdVendorSpecificHeaderOptions), requestInfo->info.options,
sizeof(CAHeaderOption_t)*tempNum);