package proxy import ( "time" ) /* constants.go - 代理系统常量定义 统一管理common/proxy包中的所有常量,便于查看和编辑。 */ // ============================================================================= // 代理类型常量 (从Types.go迁移) // ============================================================================= const ( // 代理类型字符串 ProxyTypeStringNone = "none" ProxyTypeStringHTTP = "http" ProxyTypeStringHTTPS = "https" ProxyTypeStringSOCKS5 = "socks5" ProxyTypeStringUnknown = "unknown" ) // ============================================================================= // 默认配置常量 (从Types.go迁移) // ============================================================================= const ( // 默认代理配置值 DefaultProxyTimeout = 30 * time.Second // 默认超时时间 DefaultProxyMaxRetries = 3 // 默认最大重试次数 DefaultProxyKeepAlive = 30 * time.Second // 默认保持连接时间 DefaultProxyIdleTimeout = 90 * time.Second // 默认空闲超时时间 DefaultProxyMaxIdleConns = 10 // 默认最大空闲连接数 ) // ============================================================================= // 错误类型常量 (从Types.go迁移) // ============================================================================= const ( // 预定义错误类型 ErrTypeConfig = "config_error" ErrTypeConnection = "connection_error" ErrTypeAuth = "auth_error" ErrTypeTimeout = "timeout_error" ErrTypeProtocol = "protocol_error" ) // ============================================================================= // 缓存管理常量 (从Manager.go迁移) // ============================================================================= const ( // 缓存配置 DefaultCacheExpiry = 5 * time.Minute // 默认缓存过期时间 ) // ============================================================================= // 错误代码常量 (从Manager.go和其他文件迁移) // ============================================================================= const ( // Manager错误代码 ErrCodeUnsupportedProxyType = 1001 ErrCodeEmptyConfig = 1002 // SOCKS5错误代码 ErrCodeSOCKS5ParseFailed = 2001 ErrCodeSOCKS5CreateFailed = 2002 // 直连错误代码 ErrCodeDirectConnFailed = 3001 ErrCodeSOCKS5ConnTimeout = 3002 ErrCodeSOCKS5ConnFailed = 3003 // HTTP代理错误代码 ErrCodeHTTPConnFailed = 4001 ErrCodeHTTPSetWriteTimeout = 4002 ErrCodeHTTPSendConnectFail = 4003 ErrCodeHTTPSetReadTimeout = 4004 ErrCodeHTTPReadRespFailed = 4005 ErrCodeHTTPProxyAuthFailed = 4006 // TLS错误代码 ErrCodeTLSTCPConnFailed = 5001 ErrCodeTLSHandshakeFailed = 5002 ) // ============================================================================= // HTTP协议常量 (从HTTPDialer.go迁移) // ============================================================================= const ( // HTTP响应状态码 HTTPStatusOK = 200 // HTTP协议常量 HTTPVersion = "HTTP/1.1" HTTPMethodConnect = "CONNECT" // HTTP头部常量 HTTPHeaderHost = "Host" HTTPHeaderProxyAuth = "Proxy-Authorization" HTTPHeaderAuthBasic = "Basic" ) // ============================================================================= // 网络协议常量 (从各文件迁移) // ============================================================================= const ( // 网络协议 NetworkTCP = "tcp" // 代理协议前缀 ProxyProtocolSOCKS5 = "socks5" // 认证分隔符 AuthSeparator = ":" ) // ============================================================================= // 错误消息常量 // ============================================================================= const ( // Manager错误消息 ErrMsgUnsupportedProxyType = "不支持的代理类型" ErrMsgEmptyConfig = "配置不能为空" // SOCKS5错误消息 ErrMsgSOCKS5ParseFailed = "SOCKS5代理地址解析失败" ErrMsgSOCKS5CreateFailed = "SOCKS5拨号器创建失败" ErrMsgSOCKS5ConnTimeout = "SOCKS5连接超时" ErrMsgSOCKS5ConnFailed = "SOCKS5连接失败" // 直连错误消息 ErrMsgDirectConnFailed = "直连失败" // HTTP代理错误消息 ErrMsgHTTPConnFailed = "连接HTTP代理服务器失败" ErrMsgHTTPSetWriteTimeout = "设置写超时失败" ErrMsgHTTPSendConnectFail = "发送CONNECT请求失败" ErrMsgHTTPSetReadTimeout = "设置读超时失败" ErrMsgHTTPReadRespFailed = "读取HTTP响应失败" ErrMsgHTTPProxyAuthFailed = "HTTP代理连接失败,状态码: %d" // TLS错误消息 ErrMsgTLSTCPConnFailed = "建立TCP连接失败" ErrMsgTLSHandshakeFailed = "TLS握手失败" ) // ============================================================================= // 缓存键前缀常量 (从Manager.go迁移) // ============================================================================= const ( // 缓存键前缀 CacheKeySOCKS5 = "socks5_%s" CacheKeyHTTP = "http_%s" ) // ============================================================================= // 格式化字符串常量 (从各文件迁移) // ============================================================================= const ( // SOCKS5 URL格式 SOCKS5URLFormat = "socks5://%s" SOCKS5URLAuthFormat = "socks5://%s:%s@%s" // HTTP CONNECT请求格式 HTTPConnectRequestFormat = "CONNECT %s HTTP/1.1\r\nHost: %s\r\n" HTTPAuthHeaderFormat = "Proxy-Authorization: Basic %s\r\n" HTTPRequestEndFormat = "\r\n" )