Documentation
¶
Index ¶
- Variables
- func Listen(addr net1.Destination, config *Config) (net.Listener, error)
- func NewDialer(protocolConfig, securityConfig interface{}, dl i.DialerListener, ...) (i.Dialer, error)
- type BindToDefaultNICDialer
- type Config
- type DialerFactory
- type DialerFactoryImp
- type DialerFactoryOption
- type FdFunc
- type HandlerDialerFactory
- type Listener
- type ListenerAdapter
- type ListenerImpl
- type PreConnectDialer
- type Prefer4Dialer
- type ResolveDomainDialer
- type RetryDialer
- type UdpDialer
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultDialer = tcp.NewTcpDialer(nil, nil, &dlhelper.SocketSetting{})
View Source
var DefaultPacketListener = &dlhelper.SocketSetting{}
View Source
var SecurityNameToConfigType = make(map[string]reflect.Type)
View Source
var TransportNameToConfigType = make(map[string]reflect.Type)
Functions ¶
func NewDialer ¶
func NewDialer(protocolConfig, securityConfig interface{}, dl i.DialerListener, dnsServer i.ECHResolver) (i.Dialer, error)
Types ¶
type BindToDefaultNICDialer ¶
type BindToDefaultNICDialer struct {
// contains filtered or unexported fields
}
func NewBindToDefaultNICDialer ¶
func NewBindToDefaultNICDialer(defaultNICMonitor i.DefaultInterfaceInfo, socketSetting *dlhelper.SocketSetting) *BindToDefaultNICDialer
func (*BindToDefaultNICDialer) Dial ¶
func (d *BindToDefaultNICDialer) Dial(ctx context.Context, dst net1.Destination) (net.Conn, error)
func (*BindToDefaultNICDialer) ListenPacket ¶
func (d *BindToDefaultNICDialer) ListenPacket(ctx context.Context, network, address string) (net.PacketConn, error)
type Config ¶
type Config struct {
Security interface{}
Protocol interface{}
Socket *dlhelper.SocketSetting
// used to lookup ech config
DnsServer i.ECHResolver
// dialer
DomainStrategy domain.DomainStrategy
Address net1.Address
PortSelector i.PortSelector
}
type DialerFactory ¶
type DialerFactoryImp ¶
type DialerFactoryImp struct {
DialerFactoryOption
}
To prevent route loop
func DefaultDialerFactory ¶
func DefaultDialerFactory() *DialerFactoryImp
func NewDialerFactoryImp ¶
func NewDialerFactoryImp(options DialerFactoryOption) *DialerFactoryImp
func (*DialerFactoryImp) GetDialer ¶
func (d *DialerFactoryImp) GetDialer(config *Config) (i.Dialer, error)
func (*DialerFactoryImp) GetPacketListener ¶
func (d *DialerFactoryImp) GetPacketListener(config *Config) (i.PacketListener, error)
type DialerFactoryOption ¶
type DialerFactoryOption struct {
Retry bool
BindToDefaultNIC bool
IpResolver i.IPResolver
DefaultInterfaceMonitor i.DefaultInterfaceInfo
// used to bind to default nic
FdFunc FdFunc
}
type HandlerDialerFactory ¶
type HandlerDialerFactory struct {
Handler i.Handler
DnsServer i.ECHResolver
}
use a handler to dial and listen
func (*HandlerDialerFactory) GetDialer ¶
func (d *HandlerDialerFactory) GetDialer(config *Config) (i.Dialer, error)
func (*HandlerDialerFactory) GetPacketListener ¶
func (d *HandlerDialerFactory) GetPacketListener(config *Config) (i.PacketListener, error)
type ListenerAdapter ¶
type ListenerAdapter struct {
Listener
// contains filtered or unexported fields
}
func (*ListenerAdapter) Close ¶
func (l *ListenerAdapter) Close() error
type ListenerImpl ¶
type ListenerImpl struct {
Socket *dlhelper.SocketSetting
SecurityConfig interface{}
// contains filtered or unexported fields
}
type PreConnectDialer ¶
type PreConnectDialer struct {
i.Dialer
PortSelector i.PortSelector
// contains filtered or unexported fields
}
func NewPreConnectDialer ¶
func NewPreConnectDialer(ctx context.Context, dialer i.Dialer, addr net.Address, portSelector i.PortSelector) *PreConnectDialer
NewPreConnectDialer creates a new PreConnectDialer with connection pooling
func (*PreConnectDialer) Dial ¶
func (d *PreConnectDialer) Dial(ctx context.Context, dst net.Destination) (net.Conn, error)
Dial returns a pre-established connection from the pool, or creates a new one if pool is empty
type Prefer4Dialer ¶
type Prefer4Dialer struct {
i.Dialer
IpResolver i.IPResolver
}
func (*Prefer4Dialer) Dial ¶
func (p *Prefer4Dialer) Dial(ctx context.Context, dst net1.Destination) (net.Conn, error)
type ResolveDomainDialer ¶
type ResolveDomainDialer struct {
i.DialerListener
Dns i.IPResolver
// if nil, use lookupIP to lookup domain
// when not-nil, Dialer tyically use default nic to dial.
DefaultInterfaceInfo i.DefaultInterfaceInfo
Strategy domain.DomainStrategy
}
This dialer will resolve domain to ip address before dial. If the default interface does not support ipv6, it will only lookup ipv4.
func (*ResolveDomainDialer) Dial ¶
func (d *ResolveDomainDialer) Dial(ctx context.Context, dst net1.Destination) (net.Conn, error)
beaware that when DefaultInterfaceInfo is nil, LookupIP might return ipv6 address while the default nic does not support ipv6.
type RetryDialer ¶
func (*RetryDialer) Dial ¶
func (d *RetryDialer) Dial(ctx context.Context, target net1.Destination) (net.Conn, error)
Click to show internal directories.
Click to hide internal directories.