| | |
| | | /** |
| | | * \file |
| | | * This file contains all the properties that are customizable on on a per-project basis eg: |
| | | * 1) api parameter sizes |
| | | * 2) |
| | | * |
| | | * It is safe to place the values that your project need to customize here, since each project get its own copy of this |
| | | * file. |
| | | */ |
| | | |
| | | /** |
| | | * \addtogroup api |
| | | * @{ |
| | | */ |
| | | |
| | | #ifndef BUILD_PROPERTIES_H_ |
| | | #define BUILD_PROPERTIES_H_ |
| | | |
| | | |
| | | /** |
| | | * This file contains all the properties that are customizable on on a per-project basis eg: |
| | | * 1) api parameter sizes |
| | |
| | | #define LCC_LICENSE_FILE_EXTENSION ".lic" |
| | | #define LCC_LICENSE_LOCATION_ENV_VAR "LICENSE_LOCATION" |
| | | #define LCC_LICENSE_DATA_ENV_VAR "LICENSE_DATA" |
| | | /** |
| | | * Environment variable that if defined will change the identification strategy used to generate the hardware identifier. |
| | | * If a client has an unstable pc-identifier use this variable to generate one. |
| | | * Valid values are integers defined in `LCC_IDENTIFICATION_STRATEGY` enum. |
| | | */ |
| | | #define LCC_IDENTIFICATION_STRATEGY_ENV_VAR "IDENTIFICATION_STRATEGY" |
| | | |
| | | /** |
| | | * Enum to select a specific pc identification_strategy. DEFAULT Should be used in most cases. |
| | | */ |
| | | typedef enum { |
| | | STRATEGY_DEFAULT = -1, |
| | | STRATEGY_ETHERNET = 0, |
| | | STRATEGY_IP_ADDRESS = 1, |
| | | STRATEGY_DISK_NUM = 2, |
| | | STRATEGY_DISK_LABEL = 3, |
| | | STRATEGY_MEMORY_CPU_SIZE = 4, |
| | | STRATEGY_HOST_NAME = 5, |
| | | STRATEGY_NONE = -2 |
| | | } LCC_API_IDENTIFICATION_STRATEGY; |
| | | |
| | | //strategies used for each virtual environment. |
| | | #define LCC_BARE_TO_METAL_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_DISK_LABEL, STRATEGY_NONE } |
| | | #define LCC_VM_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_NONE } |
| | | #define LCC_LXC_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_NONE } |
| | | #define LCC_DOCKER_STRATEGIES { STRATEGY_NONE } |
| | | #define LCC_CLOUD_STRATEGIES { STRATEGY_NONE } |
| | | |
| | | //Api structure limits |
| | | // Api structure limits |
| | | /** |
| | | * Maximum size of a license file or base64 data |
| | | */ |
| | |
| | | */ |
| | | #define LCC_VERIFY_MAGIC (lic_info.m_magic == @LCC_PROJECT_MAGIC_NUM@) |
| | | |
| | | /** |
| | | * |
| | | * Environment variable name that if defined will change the identification strategy used to generate the hardware |
| | | * identifier. If a client has an unstable pc-identifier use this variable to generate one. Valid values are integers |
| | | * defined in `LCC_IDENTIFICATION_STRATEGY` enum. |
| | | */ |
| | | #define LCC_IDENTIFICATION_STRATEGY_ENV_VAR "IDENTIFICATION_STRATEGY" |
| | | |
| | | /** |
| | | * \enum LCC_API_HW_IDENTIFICATION_STRATEGY |
| | | * |
| | | * This enum list all the possible pc identification strategy. It is to be used as a parameter of ::identify_pc |
| | | * |
| | | * ::STRATEGY_DEFAULT Should be used in most cases. |
| | | */ |
| | | enum LCC_API_HW_IDENTIFICATION_STRATEGY { |
| | | /** |
| | | * \brief Default strategy. |
| | | * |
| | | * This strategy try to detect which virtual environment the software is running in. |
| | | * - If no virtual environment is detected it will try the strategies defined in ::LCC_BARE_TO_METAL_STRATEGIES |
| | | * - If it detects the software is running in a virtual machine it will use ::LCC_VM_STRATEGIES |
| | | * - If it detects the software is running in a docker or in an LXC it will use ::LCC_DOCKER_STRATEGIES or |
| | | * ::LCC_DOCKER_STRATEGIES |
| | | * - If it detects the software is running in a virtual machine in the cloud it will use ::LCC_CLOUD_STRATEGIES |
| | | */ |
| | | STRATEGY_DEFAULT = -1, |
| | | STRATEGY_ETHERNET = 0, |
| | | STRATEGY_IP_ADDRESS = 1, |
| | | STRATEGY_DISK_NUM = 2, |
| | | STRATEGY_DISK_LABEL = 3, |
| | | STRATEGY_MEMORY_CPU_SIZE = 4, |
| | | STRATEGY_HOST_NAME = 5, |
| | | STRATEGY_NONE = -2 |
| | | }; |
| | | |
| | | /** |
| | | * @addtogroup strategies |
| | | * @{ |
| | | */ |
| | | /** |
| | | * List the strategies used when no virtual envrionment is detected |
| | | */ |
| | | #define LCC_BARE_TO_METAL_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_DISK_LABEL, STRATEGY_NONE } |
| | | /** |
| | | * List the strategies used when the software is executing in a virtual machine |
| | | */ |
| | | #define LCC_VM_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_NONE } |
| | | #define LCC_LXC_STRATEGIES { STRATEGY_ETHERNET, STRATEGY_NONE } |
| | | #define LCC_DOCKER_STRATEGIES { STRATEGY_NONE } |
| | | /** |
| | | * List the strategies used when it's detected an execution in the cloud |
| | | */ |
| | | #define LCC_CLOUD_STRATEGIES { STRATEGY_NONE } |
| | | |
| | | /** |
| | | * @} |
| | | */ |
| | | |
| | | |
| | | #endif |
| | | /** |
| | | * @} |
| | | */ |