/**
|
* \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
|
* 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.
|
*/
|
|
#define LCC_PROJECT_NAME "@LCC_PROJECT_NAME@"
|
|
//License retrieval configuration
|
#define FIND_LICENSE_NEAR_MODULE true
|
#define FIND_LICENSE_WITH_ENV_VAR false
|
|
/**
|
* License file name extension
|
*/
|
#define LCC_LICENSE_FILE_EXTENSION ".lic"
|
#define LCC_LICENSE_LOCATION_ENV_VAR "LICENSE_LOCATION"
|
#define LCC_LICENSE_DATA_ENV_VAR "LICENSE_DATA"
|
|
// Api structure limits
|
/**
|
* Maximum size of a license file or base64 data
|
*/
|
#define LCC_API_MAX_LICENSE_DATA_LENGTH 1024 * 4
|
|
// define api structure sizes
|
#define LCC_API_PC_IDENTIFIER_SIZE 19
|
#define LCC_API_PROPRIETARY_DATA_SIZE 16
|
#define LCC_API_AUDIT_EVENT_NUM 5
|
#define LCC_API_AUDIT_EVENT_PARAM2 255
|
#define LCC_API_VERSION_LENGTH 15
|
#define LCC_API_FEATURE_NAME_SIZE 15
|
#define LCC_API_EXPIRY_DATE_SIZE 10
|
#define LCC_API_ERROR_BUFFER_SIZE 256
|
|
/**
|
This definition allows to specify a custom expression to verify the magic number passed in by the api.
|
*/
|
#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 first checks the content of the environment variable `IDENTIFICATION_STRATEGY`. If the variable is defined it will use the
|
* strategy specified in there, if not defined it will 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 = 2,
|
/**
|
* Not yet implemented
|
*/
|
STRATEGY_CPU_SIZE = 3,
|
/**
|
* Not yet implemented
|
*/
|
STRATEGY_HOST_NAME = 4,
|
STRATEGY_NONE = -2
|
};
|
|
/**
|
* @addtogroup strategies
|
* @{
|
*/
|
/**
|
* List the strategies used when no virtual envrionment is detected
|
*/
|
#define LCC_BARE_TO_METAL_STRATEGIES { STRATEGY_DISK, STRATEGY_HOST_NAME, 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
|
/**
|
* @}
|
*/
|