// // Created by xajhu on 2019/11/18 0018. // #ifndef ZTP_CLIENT_ZTP_CONFIG_H #define ZTP_CLIENT_ZTP_CONFIG_H #include #include "common.h" #define DEVICE_ZTP_PATH ("../ztp.conf") #define DEV_MAX_PORT (32) #define MAX_IP_LEN (64) typedef enum { IPV4_TYPE = 0, IPV6_TYPE = 1, UNKNOWN_IP_TYPE = -1, } IP_TYPE; typedef enum { LAN_PORT = 0, WAN_PORT = 1, UNKNOWN_PORT = -1, } HARD_PORT_TYPE; typedef enum { DHCP_TYPE = 0, STATIC_TYPE = 1, PPPOE_TYPE = 2, UNKNOWN_PRO_TYPE = -1, } WAN_PRO_TYPE; typedef struct { char server_url[MAX_PATH * 2]; int port; } ZTP_SERVER, *PZTP_SERVER; typedef struct { ZTP_SERVER svr_cfg; char dev_dir[MAX_PATH]; } ZTP_CONFIG, *PZTP_CONFIG; typedef struct { int ip_type; char ip_addr[MAX_IP_LEN]; char netmask[MAX_IP_LEN]; } DEV_LAN_CONFIG, *PDEV_LAN_CONFIG; typedef struct { int ip_type; char ip_addr[MAX_IP_LEN]; char netmask[MAX_IP_LEN]; char gateway[MAX_IP_LEN]; char master_dns[MAX_IP_LEN]; char backup_dns[MAX_IP_LEN]; } STATIC_CONFIG, *PSTATIC_CONFIG; typedef struct { char username[MAX_PATH]; char password[MAX_PATH]; } PPPOE_CONFIG, *PPPPOE_CONFIG; typedef struct { int port_type; int port_protocol; union { PPPOE_CONFIG pppoe_config; STATIC_CONFIG static_config; } wan_conf; } DEV_PORT_CONFIG, *PDEV_PORT_CONFIG; typedef struct { DEV_PORT_CONFIG port_cfg[DEV_MAX_PORT]; DEV_LAN_CONFIG lan_config; int total_ports; } DEVICE_CONFIG, *PDEVICE_CONFIG; int init_configure(const char *pPath); int cfg_get_bool_value(config_t *pCfg, const char *pTags, int defValue); int cfg_get_int_value(config_t *pCfg, const char *pTags, int defValue); char *cfg_get_string_value(config_t *pCfg, const char *pTags, char *pDefValue); double cfg_get_float_value(config_t *pCfg, const char *pTags, double defValue); int cfg_get_array_int_value(config_t *pCfg, const char *pTags, int *pArray, int *pMaxItem); int load_dev_config(const char *devId); #endif //ZTP_CLIENT_ZTP_CONFIG_H