// // Created by xajhu on 2021/7/1 0001. // #include "zvector/zvector.h" #include "uthash/uthash.h" #ifndef DAEMON_AGENT_INCLUDE_CONFIG_H #define DAEMON_AGENT_INCLUDE_CONFIG_H #ifdef __cplusplus extern "C" { #endif #define DEFAULT_INTEGRAL_ERR_VALUE (0x0AFFFFAA) typedef struct { char rangAddr[256]; char subnet[20]; char dnsSvr[256]; char gateway[20]; unsigned int lease; } OBJ_DHCP_RNG, *POBJ_DHCP_RNG; typedef enum { VALUE_TYPE_INTEGRAL = 0, VALUE_TYPE_FLOAT = 1, VALUE_TYPE_STRING = 2, VALUE_TYPE_BOOL = 3, VALUE_TYPE_ARRAY_STR = 4, VALUE_TYPE_ARRAY_OBJ = 5, } CONFIG_VALUE_TYPE; typedef enum { CFG_DIRECTORY = 0, CFG_CURL_CA_PATH = 1, CFG_BANNER_SHOW = 2, CFG_HARDWARE_WATCH = 3, CFG_HARDWARE_REFRESH = 4, CFG_WATCH_CPU = 5, CFG_WATCH_MEMORY = 6, CFG_WATCH_DISK = 7, CFG_WATCH_SENSOR = 8, CFG_CPU_REFRESH = 9, CFG_MEM_REFRESH = 10, CFG_DISK_REFRESH = 11, CFG_SENSOR_REFRESH = 12, CFG_DB_REDIS_SERVER = 13, CFG_DB_REDIS_PORT = 14, CFG_DB_REDIS_PASSWD = 15, CFG_DB_MYSQL_SERVER = 16, CFG_DB_MYSQL_PORT = 17, CFG_DB_MYSQL_USER = 18, CFG_DB_MYSQL_PASSWD = 19, CFG_DB_MYSQL_DB_NAME = 20, CFG_MQ_SVR_PORT = 21, CFG_MQ_DATA_PATH = 22, CFG_VXLAN_NIC_NAME = 23, CFG_VXLAN_SUPPORT = 24, CFG_VXLAN_PEER_IP = 25, CFG_VXLAN_PEER_MAC = 26, CFG_VXLAN_PKG_FILTER = 27, CFG_HTTP_SVR_ADDR = 29, CFG_HTTP_SVR_PORT = 30, CFG_HTTP_SVR_TCP_NODELAY = 31, CFG_DHCP_LISTEN_ON = 32, CFG_DHCP_HTTP_CLIENT = 33, CFG_DHCP_RANGE_SET = 34, CONFIG_ITEM_ID_MAX } CONFIG_ITEM_ID; typedef union { long long longValue; char *strValue; long double floatValue; vector array; } CFG_VALUE, *PCFG_VALUE; typedef struct { CONFIG_ITEM_ID cfgId; const char *pcfgKey; CONFIG_VALUE_TYPE valType; const char *defaultValue; int isChanged; const char *pMessage; const char *pStrId; CFG_VALUE value; UT_hash_handle hh; } CONFIG_ITEM, *PCONFIG_ITEM; const char *get_cur_process_dir(); const char*get_cur_process_name(); const char *config_get_ssl_ca_path(); const char *cfg_get_config_directory(); int cfg_get_banner_enable(); int cfg_get_hardware_watch_enable(); unsigned int cfg_get_hardware_refresh_period(); int cfg_get_watch_cpu(); int cfg_get_watch_memory(); int cfg_get_watch_disk(); int cfg_get_watch_sensor(); unsigned int cfg_get_cpu_refresh_period(); unsigned int cfg_get_mem_refresh_period(); unsigned int cfg_get_disk_refresh_period(); unsigned int cfg_get_sensor_refresh_period(); const char *cfg_get_redis_server(); int cfg_get_redis_port(); const char *cfg_get_redis_passwd(); const char *cfg_get_mysql_server(); int cfg_get_mysql_port(); const char *cfg_get_mysql_user(); const char *cfg_get_mysql_passwd(); const char *cfg_get_mysql_database(); int cfg_get_zero_mq_port(); const char *cfg_get_zero_mq_data_path(); const char *cfg_get_string_value(CONFIG_ITEM_ID id); long double cfg_get_float_value(CONFIG_ITEM_ID id); int cfg_get_bool_value(CONFIG_ITEM_ID id); long long cfg_get_integral_value(CONFIG_ITEM_ID id); int init_config_system(const char *pCfgFile, const char *pKey); void uninit_config_system(); void config_item_dump(const char *titleMessage); const char *config_item_dump_fmt(const char *titleMessage); const char *get_config_key(const char *pKeygen); const char *get_config_keygen(); int cfg_get_support_vxlan(); const char *config_get_vxlan_nic_name(); const char *config_get_vxlan_peer_mac(); const char *config_get_vxlan_peer_ip(); const char *config_get_vxlan_pkg_filter(); const char *config_get_http_server_addr(); unsigned int config_get_http_server_port(); int config_get_http_server_tcp_nodelay(); #ifdef __cplusplus } #endif #endif//DAEMON_AGENT_INCLUDE_CONFIG_H