#ifdef RD_CLIENT
-OCStackResult OCRDDiscover(OCConnectivityType connectivityType, OCCallbackData *cbBiasFactor,
- OCQualityOfService qos)
+OCStackResult OCRDDiscover(OCDoHandle *handle, OCConnectivityType connectivityType,
+ OCCallbackData *cbBiasFactor, OCQualityOfService qos)
{
if (!cbBiasFactor || !cbBiasFactor->cb)
{
snprintf(queryUri, MAX_URI_LENGTH, "coap://%s%s", OC_MULTICAST_PREFIX, OC_RSRVD_RD_URI);
OIC_LOG_V(DEBUG, TAG, "Querying RD: %s\n", queryUri);
- return OCDoResource(NULL, OC_REST_DISCOVER, queryUri, NULL, NULL, connectivityType, qos,
+ return OCDoResource(handle, OC_REST_DISCOVER, queryUri, NULL, NULL, connectivityType, qos,
cbBiasFactor, NULL, 0);
}
-OCStackResult OCRDPublish(const char *host, OCConnectivityType connectivityType,
+OCStackResult OCRDPublish(OCDoHandle *handle, const char *host,
+ OCConnectivityType connectivityType,
OCResourceHandle *resourceHandles, uint8_t nHandles,
OCCallbackData *cbData, OCQualityOfService qos)
{
// Get Device ID from stack.
const unsigned char *id = (const unsigned char *) OCGetServerInstanceIDString();
- return OCRDPublishWithDeviceId(host, id, connectivityType, resourceHandles, nHandles,
- cbData, qos);
+ return OCRDPublishWithDeviceId(handle, host, id, connectivityType, resourceHandles,
+ nHandles, cbData, qos);
}
-OCStackResult OCRDPublishWithDeviceId(const char *host, const unsigned char *id,
+OCStackResult OCRDPublishWithDeviceId(OCDoHandle *handle, const char *host,
+ const unsigned char *id,
OCConnectivityType connectivityType,
OCResourceHandle *resourceHandles, uint8_t nHandles,
OCCallbackData *cbData, OCQualityOfService qos)
return OC_STACK_NO_MEMORY;
}
- OCRepPayloadSetPropString(rdPayload, OC_RSRVD_DEVICE_ID, id);
+ OCRepPayloadSetPropString(rdPayload, OC_RSRVD_DEVICE_ID, (const char *) id);
+
+ char *deviceName = NULL;
+ OCGetPropertyValue(PAYLOAD_TYPE_DEVICE, OC_RSRVD_DEVICE_NAME, (void **) &deviceName);
+ if (deviceName)
+ {
+ OCRepPayloadSetPropString(rdPayload, OC_RSRVD_DEVICE_NAME, deviceName);
+ OICFree(deviceName);
+ }
+
+ char *platformModelName = NULL;
+ OCGetPropertyValue(PAYLOAD_TYPE_PLATFORM, OC_RSRVD_MODEL_NUM, (void **) &platformModelName);
+ if (platformModelName)
+ {
+ OCRepPayloadSetPropString(rdPayload, OC_DATA_MODEL_NUMBER, platformModelName);
+ OICFree(platformModelName);
+ }
+
OCRepPayloadSetPropInt(rdPayload, OC_RSRVD_DEVICE_TTL, OIC_RD_PUBLISH_TTL);
OCRepPayload **linkArr = OICCalloc(nPubResHandles, sizeof(OCRepPayload *));
OCRepPayloadSetStringArrayAsOwner(link, OC_RSRVD_INTERFACE, itf, ifDim);
}
- uint8_t ins = 0;
+ int64_t ins = 0;
if (OC_STACK_OK == OCGetResourceIns(handle, &ins))
{
OCRepPayloadSetPropInt(link, OC_RSRVD_INS, ins);
}
OICFree(linkArr);
- return OCDoResource(NULL, OC_REST_POST, targetUri, NULL, (OCPayload *)rdPayload,
+ return OCDoResource(handle, OC_REST_POST, targetUri, NULL, (OCPayload *)rdPayload,
connectivityType, qos, cbData, NULL, 0);
}
-OCStackResult OCRDDelete(const char *host, OCConnectivityType connectivityType,
+OCStackResult OCRDDelete(OCDoHandle *handle, const char *host,
+ OCConnectivityType connectivityType,
OCResourceHandle *resourceHandles, uint8_t nHandles,
OCCallbackData *cbData, OCQualityOfService qos)
{
const unsigned char *id = (const unsigned char *) OCGetServerInstanceIDString();
- return OCRDDeleteWithDeviceId(host, id, connectivityType, resourceHandles, nHandles,
- cbData, qos);
+ return OCRDDeleteWithDeviceId(handle, host, id, connectivityType, resourceHandles,
+ nHandles, cbData, qos);
}
-OCStackResult OCRDDeleteWithDeviceId(const char *host, const unsigned char *id,
+OCStackResult OCRDDeleteWithDeviceId(OCDoHandle *handle, const char *host,
+ const unsigned char *id,
OCConnectivityType connectivityType,
OCResourceHandle *resourceHandles, uint8_t nHandles,
OCCallbackData *cbData, OCQualityOfService qos)
for (uint8_t j = 0; j < nHandles; j++)
{
OCResource *handle = (OCResource *) resourceHandles[j];
- uint8_t ins = 0;
+ int64_t ins = 0;
OCGetResourceIns(handle, &ins);
- len += snprintf(queryParam + len, MAX_URI_LENGTH, "&ins=%d", ins);
+ len += snprintf(queryParam + len, MAX_URI_LENGTH, "&ins=%" PRId64, ins);
OIC_LOG_V(DEBUG, TAG, "queryParam [%s]", queryParam);
}
OICStrcatPartial(targetUri, sizeof(targetUri), queryParam, strlen(queryParam));
OIC_LOG_V(DEBUG, TAG, "Target URI: %s", targetUri);
- return OCDoResource(NULL, OC_REST_DELETE, targetUri, NULL, NULL, connectivityType,
+ return OCDoResource(handle, OC_REST_DELETE, targetUri, NULL, NULL, connectivityType,
qos, cbData, NULL, 0);
}