*
* requestUri must be a char array of size CA_MAX_URI_LENGTH
*/
-static int FormCanonicalPresenceUri(const CAEndpoint_t *endpoint, char *resourceUri,
+static int FormCanonicalPresenceUri(const CAEndpoint_t *endpoint,
char *presenceUri, bool isMulticast)
{
VERIFY_NON_NULL(endpoint , FATAL, OC_STACK_INVALID_PARAM);
- VERIFY_NON_NULL(resourceUri, FATAL, OC_STACK_INVALID_PARAM);
VERIFY_NON_NULL(presenceUri, FATAL, OC_STACK_INVALID_PARAM);
if (isMulticast)
}
// check for unicast presence
- uriLen = FormCanonicalPresenceUri(endpoint, OC_RSRVD_PRESENCE_URI, presenceUri,
+ uriLen = FormCanonicalPresenceUri(endpoint, presenceUri,
responseInfo->isMulticast);
if (uriLen < 0 || (size_t)uriLen >= sizeof (presenceUri))
{
}
static OCStackResult OCPreparePresence(CAEndpoint_t *endpoint,
- char *resourceUri,
char **requestUri,
bool isMulticast)
{
char uri[CA_MAX_URI_LENGTH];
- FormCanonicalPresenceUri(endpoint, resourceUri, uri, isMulticast);
+ FormCanonicalPresenceUri(endpoint, uri, isMulticast);
*requestUri = OICStrdup(uri);
if (!*requestUri)
requestInfo.info.type = qualityOfServiceToMessageType(qos);
requestInfo.info.token = token;
requestInfo.info.tokenLength = tokenLength;
- requestInfo.info.resourceUri = resourceUri;
if ((method == OC_REST_OBSERVE) || (method == OC_REST_OBSERVE_ALL))
{
if (method == OC_REST_PRESENCE)
{
char *presenceUri = NULL;
- result = OCPreparePresence(&endpoint, resourceUri, &presenceUri,
+ result = OCPreparePresence(&endpoint, &presenceUri,
requestInfo.isMulticast);
if (OC_STACK_OK != result)
{
}
#endif
+ // update resourceUri onto requestInfo after check presence uri
+ requestInfo.info.resourceUri = resourceUri;
+
ttl = GetTicks(MAX_CB_TIMEOUT_SECONDS * MILLISECONDS_PER_SECOND);
result = AddClientCB(&clientCB, cbData, token, tokenLength, &resHandle,
method, devAddr, resourceUri, resourceType, ttl);