94 lines
2.3 KiB
C
94 lines
2.3 KiB
C
//
|
|
// Created by xajhu on 2019/11/18 0018.
|
|
//
|
|
|
|
#ifndef ZTP_CLIENT_ZTP_CONFIG_H
|
|
#define ZTP_CLIENT_ZTP_CONFIG_H
|
|
|
|
#include <libconfig.h>
|
|
|
|
#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
|