Files
subconverter/src/parser/config/proxy.h
T
Tindy X 043c1fdcb9 Enhancements
Fix rule generation in Surge configs.
Refactor log output for curl verbose logs.
Optimize codes.
2023-12-06 15:25:53 +08:00

114 lines
2.2 KiB
C++

#ifndef PROXY_H_INCLUDED
#define PROXY_H_INCLUDED
#include <string>
#include <vector>
#include "utils/tribool.h"
using String = std::string;
using StringArray = std::vector<String>;
enum class ProxyType
{
Unknown,
Shadowsocks,
ShadowsocksR,
VMess,
Trojan,
Snell,
HTTP,
HTTPS,
SOCKS5,
WireGuard
};
inline String getProxyTypeName(ProxyType type)
{
switch(type)
{
case ProxyType::Shadowsocks:
return "SS";
case ProxyType::ShadowsocksR:
return "SSR";
case ProxyType::VMess:
return "VMess";
case ProxyType::Trojan:
return "Trojan";
case ProxyType::Snell:
return "Snell";
case ProxyType::HTTP:
return "HTTP";
case ProxyType::HTTPS:
return "HTTPS";
case ProxyType::SOCKS5:
return "SOCKS5";
default:
return "Unknown";
}
}
struct Proxy
{
ProxyType Type = ProxyType::Unknown;
uint32_t Id = 0;
uint32_t GroupId = 0;
String Group;
String Remark;
String Hostname;
uint16_t Port = 0;
String Username;
String Password;
String EncryptMethod;
String Plugin;
String PluginOption;
String Protocol;
String ProtocolParam;
String OBFS;
String OBFSParam;
String UserId;
uint16_t AlterId = 0;
String TransferProtocol;
String FakeType;
bool TLSSecure = false;
String Host;
String Path;
String Edge;
String QUICSecure;
String QUICSecret;
tribool UDP;
tribool TCPFastOpen;
tribool AllowInsecure;
tribool TLS13;
uint16_t SnellVersion = 0;
String ServerName;
String SelfIP;
String SelfIPv6;
String PublicKey;
String PrivateKey;
String PreSharedKey;
StringArray DnsServers;
uint16_t Mtu = 0;
String AllowedIPs = "0.0.0.0/0, ::/0";
uint16_t KeepAlive = 0;
String TestUrl;
String ClientId;
};
#define SS_DEFAULT_GROUP "SSProvider"
#define SSR_DEFAULT_GROUP "SSRProvider"
#define V2RAY_DEFAULT_GROUP "V2RayProvider"
#define SOCKS_DEFAULT_GROUP "SocksProvider"
#define HTTP_DEFAULT_GROUP "HTTPProvider"
#define TROJAN_DEFAULT_GROUP "TrojanProvider"
#define SNELL_DEFAULT_GROUP "SnellProvider"
#define WG_DEFAULT_GROUP "WireGuardProvider"
#endif // PROXY_H_INCLUDED