{
if(serverRequest)
{
+ OIC_LOG_V(WARNING, TAG, "Server request ID = [%u]", serverRequest->requestId);
LL_DELETE(serverRequestList, serverRequest);
OICFree(serverRequest->requestToken);
+ OICFree(serverRequest->rcvdVendorSpecificHeaderOptions);
OICFree(serverRequest);
serverRequest = NULL;
OIC_LOG(INFO, TAG, "Server Request Removed!!");
OIC_LOG(INFO, TAG,"Get server request with token");
OIC_LOG_BUFFER(INFO, TAG, (const uint8_t *)token, tokenLength);
- OIC_LOG(INFO, TAG,"Found token");
+ OIC_LOG(INFO, TAG, "Found token");
LL_FOREACH (serverRequestList, out)
{
- OIC_LOG_BUFFER(INFO, TAG, (const uint8_t *)out->requestToken, tokenLength);
- if(memcmp(out->requestToken, token, tokenLength) == 0)
+ if(out)
{
- return out;
+ OIC_LOG_BUFFER(INFO, TAG, (const uint8_t *)out->requestToken, out->tokenLength);
+ if((tokenLength == out->tokenLength) &&
+ memcmp(out->requestToken, token, tokenLength) == 0)
+ {
+ return out;
+ }
}
}
- OIC_LOG(ERROR, TAG, "Server Request not found!!");
+ OIC_LOG(INFO, TAG, "Server Request not found!!");
return NULL;
}
return out;
}
}
- OIC_LOG(ERROR, TAG, "Server Response not found!!");
+ OIC_LOG(INFO, TAG, "Server Response not found!!");
return NULL;
}
serverRequest->numResponses = 1;
serverRequest->requestId = OCGetRandom();
+ // checking same id exist
+ while(serverRequest->requestId == 0 || GetServerRequestUsingHandle(serverRequest->requestId) != NULL)
+ {
+ serverRequest->requestId = OCGetRandom();
+ }
+
if(query)
{
OICStrcpy(serverRequest->query, sizeof(serverRequest->query), query);
if(rcvdVendorSpecificHeaderOptions)
{
+ serverRequest->rcvdVendorSpecificHeaderOptions =
+ (OCHeaderOption *) OICCalloc(numRcvdVendorSpecificHeaderOptions, sizeof(OCHeaderOption));
+ VERIFY_NON_NULL(serverRequest->rcvdVendorSpecificHeaderOptions);
+
memcpy(serverRequest->rcvdVendorSpecificHeaderOptions, rcvdVendorSpecificHeaderOptions,
- MAX_HEADER_OPTIONS * sizeof(OCHeaderOption));
+ numRcvdVendorSpecificHeaderOptions * sizeof(OCHeaderOption));
}
if(payload && reqTotalSize)
{
if (serverRequest)
{
OICFree(serverRequest->requestToken);
+ OICFree(serverRequest->rcvdVendorSpecificHeaderOptions);
OICFree(serverRequest);
serverRequest = NULL;
}
case OC_EH_NOT_ACCEPTABLE: // 4.06
caResult = CA_NOT_ACCEPTABLE;
break;
+ case OC_EH_TOO_MANY_REQUESTS: // 4.29
+ caResult = CA_TOO_MANY_REQUESTS;
+ break;
case OC_EH_INTERNAL_SERVER_ERROR: // 5.00
caResult = CA_INTERNAL_SERVER_ERROR;
break;
+ case OC_EH_NOT_IMPLEMENTED: // 5.01
+ caResult = CA_NOT_IMPLEMENTED;
+ break;
+ case OC_EH_BAD_GATEWAY: // 5.02
+ caResult = CA_BAD_GATEWAY;
+ break;
+ case OC_EH_SERVICE_UNAVAILABLE: // 5.03
+ caResult = CA_SERVICE_UNAVAILABLE;
+ break;
case OC_EH_RETRANSMIT_TIMEOUT: // 5.04
caResult = CA_RETRANSMIT_TIMEOUT;
break;
+ case OC_EH_PROXY_NOT_SUPPORTED: // 5.05
+ caResult = CA_PROXY_NOT_SUPPORTED;
+ break;
default:
caResult = CA_BAD_REQ;
break;
// Put the JSON prefix and suffix around the payload
if(ehResponse->payload)
{
+#ifdef WITH_PRESENCE
if (ehResponse->payload->type == PAYLOAD_TYPE_PRESENCE)
{
responseInfo.isMulticast = true;
}
else
+#endif
{
responseInfo.isMulticast = false;
}
OIC_LOG(INFO, TAG, "Calling OCSendResponse with:");
OIC_LOG_V(INFO, TAG, "\tEndpoint address: %s", responseEndpoint.addr);
- OIC_LOG_V(INFO, TAG, "\tEndpoint adapter: %s", responseEndpoint.adapter);
- OIC_LOG_V(INFO, TAG, "\tResponse result : %s", responseInfo.result);
+ OIC_LOG_V(INFO, TAG, "\tEndpoint adapter: %d", responseEndpoint.adapter);
+ OIC_LOG_V(INFO, TAG, "\tResponse result : %d", responseInfo.result);
OIC_LOG_V(INFO, TAG, "\tResponse for uri: %s", responseInfo.info.resourceUri);
result = OCSendResponse(&responseEndpoint, &responseInfo);