X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fstack%2Fsrc%2Focpayloadparse.c;h=c0cc4c2064578924a4f3bf228b483d2ad074f112;hb=1cee1631595cac6a6394ac2e0b365c6dd5a42c68;hp=4763299c6aae50c35163198ab459887515e8e2bf;hpb=390866079e285d2c74918432c0d597d5da52f8a0;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/stack/src/ocpayloadparse.c b/resource/csdk/stack/src/ocpayloadparse.c index 4763299..c0cc4c2 100644 --- a/resource/csdk/stack/src/ocpayloadparse.c +++ b/resource/csdk/stack/src/ocpayloadparse.c @@ -248,7 +248,7 @@ static OCStackResult OCParseDiscoveryPayload(OCPayload **outPayload, CborValue * err = cbor_value_map_find_value(&rootMap, OC_RSRVD_RESOURCE_TYPE, &curVal); if (cbor_value_is_valid(&curVal)) { - err = cbor_value_dup_text_string(&curVal, &(out->type), &len, NULL); + err = OCParseStringLL(&rootMap, OC_RSRVD_RESOURCE_TYPE, &out->type); VERIFY_CBOR_SUCCESS(TAG, err, "to find base uri value"); } @@ -340,6 +340,16 @@ static OCStackResult OCParseDiscoveryPayload(OCPayload **outPayload, CborValue * VERIFY_CBOR_SUCCESS(TAG, err, "to find port value"); } +#ifdef TCP_ADAPTER + // TCP Port + err = cbor_value_map_find_value(&policyMap, OC_RSRVD_TCP_PORT, &curVal); + if (cbor_value_is_valid(&curVal)) + { + err = cbor_value_get_int(&curVal, (int *)&resource->tcpPort); + VERIFY_CBOR_SUCCESS(TAG, err, "to find tcp port value"); + } +#endif + err = cbor_value_advance(&resourceMap); VERIFY_CBOR_SUCCESS(TAG, err, "to advance resource map"); @@ -431,13 +441,17 @@ static OCStackResult OCParseDevicePayload(OCPayload **outPayload, CborValue *roo err = cbor_value_dup_text_string(&curVal, &out->specVersion, &len, NULL); VERIFY_CBOR_SUCCESS(TAG, err, "to find spec version in device payload"); } - // Data Model Version + // Data Model Versions err = cbor_value_map_find_value(rootValue, OC_RSRVD_DATA_MODEL_VERSION, &curVal); - VERIFY_CBOR_SUCCESS(TAG, err, "to find data model ver tag"); + VERIFY_CBOR_SUCCESS(TAG, err, "to find data model versions tag"); if (cbor_value_is_valid(&curVal)) { - err = cbor_value_dup_text_string(&curVal, &out->dataModelVersion, &len, NULL); - VERIFY_CBOR_SUCCESS(TAG, err, "to find data model version in device payload"); + size_t len = 0; + char * str = NULL; + err = cbor_value_dup_text_string(&curVal, &str, &len, NULL); + VERIFY_CBOR_SUCCESS(TAG, err, "to find data model versions in device payload"); + out->dataModelVersions = OCCreateOCStringLL(str); + OICFree(str); } err = cbor_value_advance(rootValue); VERIFY_CBOR_SUCCESS(TAG, err, "to advance device payload"); @@ -456,7 +470,7 @@ static OCStackResult OCParsePlatformPayload(OCPayload **outPayload, CborValue *r OCStackResult ret = OC_STACK_INVALID_PARAM; CborError err = CborNoError; OCPlatformInfo info = {0}; - char* rt = NULL; + OCStringLL* rt = NULL; OCStringLL* interfaces = NULL; OCPlatformPayload* out = NULL; @@ -562,7 +576,7 @@ static OCStackResult OCParsePlatformPayload(OCPayload **outPayload, CborValue *r VERIFY_CBOR_SUCCESS(TAG, err, "to find resource type tag"); if(cbor_value_is_valid(&repVal)) { - err = cbor_value_dup_text_string(&repVal, &rt, &len, NULL); + err = OCParseStringLL(rootValue, OC_RSRVD_RESOURCE_TYPE, &rt); VERIFY_CBOR_SUCCESS(TAG, err, "Failed to find resource type in the platform payload"); } @@ -1169,17 +1183,21 @@ static OCStackResult OCParsePresencePayload(OCPayload **outPayload, CborValue *r if (cbor_value_is_map(rootValue)) { CborValue curVal; + uint64_t temp = 0; // Sequence Number CborError err = cbor_value_map_find_value(rootValue, OC_RSRVD_NONCE, &curVal); VERIFY_CBOR_SUCCESS(TAG, err, "Failed finding nonce tag"); - err = cbor_value_get_uint64(&curVal, (uint64_t *)&payload->sequenceNumber); + err = cbor_value_get_uint64(&curVal, &temp); + payload->sequenceNumber = (uint32_t)temp; VERIFY_CBOR_SUCCESS(TAG, err, "Failed finding nonce value"); // Max Age err = cbor_value_map_find_value(rootValue, OC_RSRVD_TTL, &curVal); VERIFY_CBOR_SUCCESS(TAG, err, "Failed finding ttl tag"); - err = cbor_value_get_uint64(&curVal, (uint64_t *)&payload->maxAge); + temp = 0; + err = cbor_value_get_uint64(&curVal, &temp); + payload->maxAge = (uint32_t)temp; VERIFY_CBOR_SUCCESS(TAG, err, "Failed finding ttl value"); // Trigger