NetTunnelWindows/NetTunnelSDK/include/globalcfg.h

116 lines
4.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <spdlog/spdlog.h>
#include "common.h"
#include <winsock2.h>
#if 0
/**
* @brief WireGuard 配置项
*/
typedef struct {
TCHAR wireguardPath[MAX_PATH]; ///< wireguard.exe 路径
BOOL wireguardExists; ///< wireguard.exe 是否存在
TCHAR wgPath[MAX_PATH]; ///< wg.exe 路径
BOOL wgExists; ///< wg.exe 是否存在
} WIREGUARD_CFG, *PWIREGUARD_CFG;
#endif
/**
* @brief WireGuard 网络接口配置项
*/
typedef struct {
TCHAR wgName[260]; ///< 网卡名称, Windows标识为 UUID
TCHAR wgIpaddr[MAX_IP_LEN]; ///< 网卡 IP 地址
TCHAR wgNetmask[MAX_IP_LEN]; ///< 网卡子网掩码
TCHAR wgCfgPath[MAX_PATH]; ///< 配置文件路径
} WGINTERFACE_CFG, *PWGINTERFACE_CFG;
/**
*
* @brief 虚拟主机配置信息
*/
typedef struct {
int vmId; ///< 用户虚拟机 ID
TCHAR vmName[MAX_PATH]; ///< 用户虚拟机名称
TCHAR svrPublicKey[64]; ///< 用户服务端公钥
TCHAR vmNetwork[MAX_IP_LEN]; ///< 用户虚拟机网络地址
TCHAR scgGateWay[MAX_PATH]; ///< 用户服务端接入网关
TCHAR scgTunnelGw[MAX_PATH]; ///< 用户隧道接入网关
} VM_CFG, *PVM_CFG;
/**
*
* @brief 客户端用户相关配置信息
*/
typedef struct {
int scgCtrlAppId; ///< 用户接入网关控制 ID
int scgTunnelAppId; ///< 用户接入网关隧道 ID
TCHAR cliPrivateKey[64]; ///< 用户客户端私钥
TCHAR cliPublicKey[64]; ///< 用户客户端公钥
TCHAR cliAddress[MAX_IP_LEN]; ///< 用户客户端隧道IP地址
PVM_CFG pVMConfig; ///< 用户虚拟机配置列表
int tolVM; ///< 用户虚拟机配置最大数
} USER_CLIENT_CONFIG, *PUSER_CLIENT_CONFIG;
typedef struct {
int svrListenPort; ///< 用户服务端监听端口
TCHAR svrPrivateKey[64]; ///< 用户服务端公钥
TCHAR svrAddress[MAX_IP_LEN]; ///< 用户服务端隧道 IP 地址
} USER_SERVER_CONFIG, *PUSER_SERVER_CONFIG;
/**
* @brief 用户信息配置
*/
typedef struct {
TCHAR userName[MAX_PATH]; ///< 用户名
TCHAR userToken[MAX_PATH]; ///< 用户访问令牌
USER_CLIENT_CONFIG cliConfig; ///< 用户客户端配置
USER_SERVER_CONFIG svrConfig; ///< 用户服务端配置
} USER_CONFIG, *PUSER_CONFIG;
typedef struct {
TCHAR targetIp[MAX_IP_LEN];
UINT16 targetPort;
UINT16 proxyPort;
UINT16 scgGwPort;
TCHAR scgIpAddr[MAX_IP_LEN];
SOCKET udpProxySock;
SOCKET scgGwSock;
HANDLE hProxyTunnelThread;
HANDLE hProxySCGThread;
bool exitNow;
} SCG_PROXY_INFO, *PSCG_PROXY_INFO;
/**
* @brief SDK 全局配置项
*/
typedef struct {
TCHAR platformServerUrl[MAX_PATH]; ///< 管理平台IP地址
TCHAR configDirectory[MAX_PATH]; ///< 配置存放目录
TCHAR systemDirectory[MAX_PATH]; ///< 操作系统目录
TCHAR workDirectory[MAX_PATH]; ///< SDK 当前工作目录
bool isWorkServer; ///< SDK 当前模式 客户端/服务端
//int scgProxyPort; ///< SCG 代理端口, >0 启动 SCG代理<=0 关闭SCG代理
PROTO_CRYPTO_TYPE proCryptoType; ///< 协议加密类型
TCHAR proKeyBuf[256]; ///< 协议加密秘钥
BOOL enableLog; ///< 是否启用日志
spdlog::level::level_enum logLevel; ///< 日志等级
TCHAR cfgPath[MAX_PATH]; ///< 配置文件路径
WGINTERFACE_CFG wgServerCfg; ///< wireguard 服务端网络接口配置
WGINTERFACE_CFG wgClientCfg; ///< wireguard 客户端网络接口配置
USER_CONFIG userCfg; ///< 用户配置项
SCG_PROXY_INFO scgProxy; ///< SCG UDP 代理信息
int curConnVmId; ///< 当前连接的VM
} SDK_CONFIG, *PSDK_CONFIG;
#ifdef __cplusplus // If used by C++ code,
extern "C" {
// we need to export the C interface
#endif
PSDK_CONFIG GetGlobalCfgInfo();
#ifdef __cplusplus
}
#endif