コード例 #1
0
ファイル: ocrandom.c プロジェクト: Subh1994/iotivity
OCRandomUuidResult OCGenerateUuidString(char uuidString[UUID_STRING_SIZE])
{
    if (!uuidString)
    {
        return RAND_UUID_INVALID_PARAM;
    }
#if defined(__ANDROID__)
    int32_t fd = open("/proc/sys/kernel/random/uuid", O_RDONLY);
    if (fd > 0)
    {
        ssize_t readResult = read(fd, uuidString, UUID_STRING_SIZE - 1);
        close(fd);
        if (readResult < 0)
        {
            return RAND_UUID_READ_ERROR;
        }
        else if (readResult < UUID_STRING_SIZE - 1)
        {
            uuidString[0] = '\0';
            return RAND_UUID_READ_ERROR;
        }

        uuidString[UUID_STRING_SIZE - 1] = '\0';
        for (char* p = uuidString; *p; ++p)
        {
            *p = tolower(*p);
        }
        return RAND_UUID_OK;
    }
    else
    {
        close(fd);
        return RAND_UUID_READ_ERROR;
    }
#elif defined(HAVE_UUID_UUID_H)
    uint8_t uuid[UUID_SIZE];
    int8_t ret = OCGenerateUuid(uuid);

    if (ret != 0)
    {
        return ret;
    }

    uuid_unparse_lower(uuid, uuidString);
    return RAND_UUID_OK;

#else
    uint8_t uuid[UUID_SIZE];
    OCGenerateUuid(uuid);

    return OCConvertUuidToString(uuid, uuidString);
#endif
}
コード例 #2
0
ファイル: SceneUtils.cpp プロジェクト: Frank-KunLi/iotivity
        std::string SceneUtils::OICGenerateUUIDStr()
        {
            uint8_t uuid[UUID_SIZE] = { 0, };
            char uuidStr[UUID_STRING_SIZE] = { 0, };
            if (RAND_UUID_OK == OCGenerateUuid(uuid))
            {
                if (RAND_UUID_OK == OCConvertUuidToString(uuid, uuidStr))
                {
                    return std::string(uuidStr);
                }
            }

            throw RCSException("Failed to generate UUID");
        }
コード例 #3
0
static GVariant* _icd_payload_device_to_gvariant(OCDevicePayload *repr)
{
	GVariant *value;
	OCRandomUuidResult random_res;
	char device_id[UUID_STRING_SIZE] = {0};

	random_res = OCConvertUuidToString(repr->sid, device_id);
	if (RAND_UUID_OK != random_res) {
		ERR("OCConvertUuidToString() Fail(%d)", random_res);
		return NULL;
	}

	value = g_variant_new("(ssss)", repr->deviceName, repr->specVersion,
			device_id, repr->dataModelVersion);

	return value;
}