Documentation
¶
Index ¶
- Variables
- func NewHandler(config *HandlerConfig) (i.Outbound, error)
- func NewInbound(config *configs.ProxyInboundConfig, ha i.Handler, tp i.TimeoutSetting) (proxy.Inbound, error)
- func NewOutHandler(config *Config) (i.Outbound, error)
- func NewPolicy(config *configs.PolicyConfig) *policy.Policy
- func ShadowsocksAccountToMemoryAccount(account *configs.ShadowsocksAccount) (*shadowsocks.MemoryAccount, error)
- func SocketConfigToMemoryConfig(config *configs.SocketConfig, readCounter, writeCounter *atomic.Uint64) *dlhelper.SocketSetting
- func TransportConfigToMemoryConfig(config *configs.TransportConfig, readCounter, writeCounter *atomic.Uint64, ...) *transport.Config
- func TransportProtocolConfig(tc *configs.TransportConfig) interface{}
- func TransportSecurityConfig(config interface{}) interface{}
- func UserConfigToUser(config *configs.UserConfig) (*user.User, error)
- type ChainHandler
- type ChainHandlerConfig
- type Config
- type HandlerConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var OldTypeUrlToNewTypeUrl = map[string]string{
"type.googleapis.com/x.proxy.Shadowsocks2022ClientConfig": "type.googleapis.com/vx.proxy.shadowsocks2022.Shadowsocks2022ClientConfig",
"type.googleapis.com/x.proxy.Shadowsocks2022ServerConfig": "type.googleapis.com/vx.proxy.shadowsocks2022.Shadowsocks2022ServerConfig",
"type.googleapis.com/x.proxy.ShadowsocksClientConfig": "type.googleapis.com/vx.proxy.shadowsocks.ShadowsocksClientConfig",
"type.googleapis.com/x.proxy.ShadowsocksServerConfig": "type.googleapis.com/vx.proxy.shadowsocks.ShadowsocksServerConfig",
"type.googleapis.com/x.proxy.VmessClientConfig": "type.googleapis.com/vx.proxy.vmess.VmessClientConfig",
"type.googleapis.com/x.proxy.VmessServerConfig": "type.googleapis.com/vx.proxy.vmess.VmessServerConfig",
"type.googleapis.com/x.proxy.TrojanClientConfig": "type.googleapis.com/vx.proxy.trojan.TrojanClientConfig",
"type.googleapis.com/x.proxy.TrojanServerConfig": "type.googleapis.com/vx.proxy.trojan.TrojanServerConfig",
"type.googleapis.com/x.proxy.SocksClientConfig": "type.googleapis.com/vx.proxy.socks.SocksClientConfig",
"type.googleapis.com/x.proxy.SocksServerConfig": "type.googleapis.com/vx.proxy.socks.SocksServerConfig",
"type.googleapis.com/x.proxy.VlessClientConfig": "type.googleapis.com/vx.proxy.vless.VlessClientConfig",
"type.googleapis.com/x.proxy.VlessServerConfig": "type.googleapis.com/vx.proxy.vless.VlessServerConfig",
"type.googleapis.com/x.proxy.Hysteria2ClientConfig": "type.googleapis.com/vx.proxy.hysteria.Hysteria2ClientConfig",
"type.googleapis.com/x.proxy.Hysteria2ServerConfig": "type.googleapis.com/vx.proxy.hysteria.Hysteria2ServerConfig",
"type.googleapis.com/x.proxy.AnytlsClientConfig": "type.googleapis.com/vx.proxy.anytls.AnytlsClientConfig",
"type.googleapis.com/x.proxy.AnytlsServerConfig": "type.googleapis.com/vx.proxy.anytls.AnytlsServerConfig",
"type.googleapis.com/x.proxy.DokodemoConfig": "type.googleapis.com/vx.proxy.dokodemo.DokodemoConfig",
"type.googleapis.com/x.proxy.HttpClientConfig": "type.googleapis.com/vx.proxy.http.HttpClientConfig",
"type.googleapis.com/x.proxy.HttpServerConfig": "type.googleapis.com/vx.proxy.http.HttpServerConfig",
}
Functions ¶
func NewHandler ¶ added in v1.0.7
func NewHandler(config *HandlerConfig) (i.Outbound, error)
func NewInbound ¶ added in v1.0.7
func NewInbound(config *configs.ProxyInboundConfig, ha i.Handler, tp i.TimeoutSetting) (proxy.Inbound, error)
func NewOutHandler ¶ added in v1.0.7
TODO: Validate config
func ShadowsocksAccountToMemoryAccount ¶
func ShadowsocksAccountToMemoryAccount(account *configs.ShadowsocksAccount) (*shadowsocks.MemoryAccount, error)
func SocketConfigToMemoryConfig ¶
func SocketConfigToMemoryConfig(config *configs.SocketConfig, readCounter, writeCounter *atomic.Uint64) *dlhelper.SocketSetting
func TransportConfigToMemoryConfig ¶
func TransportConfigToMemoryConfig(config *configs.TransportConfig, readCounter, writeCounter *atomic.Uint64, dnsServer i.ECHResolver) *transport.Config
func TransportProtocolConfig ¶
func TransportProtocolConfig(tc *configs.TransportConfig) interface{}
func TransportSecurityConfig ¶
func TransportSecurityConfig(config interface{}) interface{}
func UserConfigToUser ¶
func UserConfigToUser(config *configs.UserConfig) (*user.User, error)
Types ¶
type ChainHandler ¶ added in v1.0.7
type ChainHandler struct {
// contains filtered or unexported fields
}
func NewChainHandler ¶ added in v1.0.7
func NewChainHandler(config *ChainHandlerConfig) (*ChainHandler, error)
func (*ChainHandler) HandleFlow ¶ added in v1.0.7
func (c *ChainHandler) HandleFlow(ctx context.Context, dst net.Destination, rw buf.ReaderWriter) error
func (*ChainHandler) HandlePacketConn ¶ added in v1.0.7
func (c *ChainHandler) HandlePacketConn(ctx context.Context, dst net.Destination, p udp.PacketReaderWriter) error
func (*ChainHandler) Tag ¶ added in v1.0.7
func (c *ChainHandler) Tag() string
type ChainHandlerConfig ¶ added in v1.0.7
type ChainHandlerConfig struct {
*configs.ChainHandlerConfig
Policy *policy.Policy
IPResolver i.IPResolver
DF transport.DialerFactory
IPResolverForRequestAddress i.IPResolver
// used to lookup ech config
EchResolver i.ECHResolver
RejectQuic bool
}
type Config ¶ added in v1.0.7
type Config struct {
*configs.OutboundHandlerConfig
DialerFactory transport.DialerFactory
Policy i.TimeoutSetting
// some outbound require it to lookup server addresses
IPResolver i.IPResolver
ECHResolver i.ECHResolver
// some outbounds need it to lookup ips of request addresses
IPResolverForRequestAddress i.IPResolver
RejectQuic bool
}
type HandlerConfig ¶ added in v1.0.7
type HandlerConfig struct {
*configs.HandlerConfig
DialerFactory transport.DialerFactory
Policy *policy.Policy
// for node domain
IPResolver i.IPResolver
EchResolver i.ECHResolver
IPResolverForRequestAddress i.IPResolver
RejectQuic bool
}
Click to show internal directories.
Click to hide internal directories.