newRsrc->rel = (char*)OICMalloc(sizeof(char) * allocateSize);
VERIFY_NON_NULL(TAG, newRsrc->rel, ERROR);
OICStrcpy(newRsrc->rel, allocateSize, rsrc->rel);
+ newRsrc->rel[allocateSize - 1] = '\0';
}
if(rsrc->types && 0 < rsrc->typeLen)
{
cbor_value_get_array_length(&rMap, &rsrc->typeLen);
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding RT array length.");
+
+ CborValue resourceTypes;
+
+ if (rsrc->typeLen == 0)
+ {
+ cborFindResult = cbor_value_enter_container(&rMap, &resourceTypes);
+ VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Entering RT Array.");
+
+ while (!cbor_value_at_end(&resourceTypes))
+ {
+ rsrc->typeLen++;
+ cborFindResult = cbor_value_advance(&resourceTypes);
+ if (cborFindResult != CborNoError)
+ {
+ break;
+ }
+ }
+ VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding RT array length.");
+ }
+
VERIFY_SUCCESS(TAG, (0 != rsrc->typeLen), ERROR);
rsrc->types = (char**)OICCalloc(rsrc->typeLen, sizeof(char*));
VERIFY_NON_NULL(TAG, rsrc->types, ERROR);
- CborValue resourceTypes;
cborFindResult = cbor_value_enter_container(&rMap, &resourceTypes);
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Entering RT Array.");
{
cbor_value_get_array_length(&rMap, &rsrc->interfaceLen);
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding IF array length.");
+
+ CborValue interfaces;
+
+ if (rsrc->interfaceLen == 0)
+ {
+ cborFindResult = cbor_value_enter_container(&rMap, &interfaces);
+ VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Entering IF Array.");
+
+ while (!cbor_value_at_end(&interfaces))
+ {
+ rsrc->interfaceLen++;
+ cborFindResult = cbor_value_advance(&interfaces);
+ if (cborFindResult != CborNoError)
+ {
+ break;
+ }
+ }
+ VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Finding IF array length.");
+ }
+
VERIFY_SUCCESS(TAG, (0 != rsrc->interfaceLen), ERROR);
rsrc->interfaces = (char**)OICCalloc(rsrc->interfaceLen, sizeof(char*));
VERIFY_NON_NULL(TAG, rsrc->interfaces, ERROR);
- CborValue interfaces;
cborFindResult = cbor_value_enter_container(&rMap, &interfaces);
VERIFY_CBOR_SUCCESS(TAG, cborFindResult, "Failed Entering IF Array.");