create

package
v1.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2026 License: AGPL-3.0 Imports: 46 Imported by: 0

Documentation

Index

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

func NewOutHandler(config *Config) (i.Outbound, error)

TODO: Validate config

func NewPolicy

func NewPolicy(config *configs.PolicyConfig) *policy.Policy

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
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL