server

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: AGPL-3.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AuthenticateTimeout = 10 * time.Second
	AcceptTimeout       = AuthenticateTimeout
)

Variables

View Source
var (
	ErrUnexpectedVersion    = fmt.Errorf("unexpected version")
	ErrUnexpectedCmdType    = fmt.Errorf("unexpected cmd type")
	ErrAuthenticationFailed = fmt.Errorf("authentication failed")
	ErrDisabledTrafficType  = fmt.Errorf("disabled traffic type")
)
View Source
var DefaultUdpEndpointPool = NewUdpEndpointPool()

Functions

This section is empty.

Types

type ContextCancel added in v0.2.1

type ContextCancel struct {
	Ctx    context.Context
	Cancel func()
}

type DialOption added in v0.2.0

type DialOption struct {
	Target   string
	Dialer   netproxy.Dialer
	Metadata any
}

type Forwarder added in v0.2.0

type Forwarder struct {
	ForwarderOptions
	// contains filtered or unexported fields
}

func NewForwarder added in v0.2.0

func NewForwarder(opts ForwarderOptions) (*Forwarder, error)

func (*Forwarder) Close added in v0.2.0

func (s *Forwarder) Close() error

func (*Forwarder) Serve added in v0.2.0

func (s *Forwarder) Serve() (err error)

type ForwarderOptions added in v0.2.0

type ForwarderOptions struct {
	Logger     *log.Logger
	Dialer     netproxy.Dialer
	LocalAddr  string
	RemoteAddr string
}

type InFlightUnderlayKey added in v0.2.1

type InFlightUnderlayKey struct {
	// contains filtered or unexported fields
}

func NewInFlightUnderlayKey added in v0.2.1

func NewInFlightUnderlayKey(ttl time.Duration) *InFlightUnderlayKey

func (*InFlightUnderlayKey) Evict added in v0.2.1

func (*InFlightUnderlayKey) Store added in v0.2.1

type Mixed

type Mixed struct {
	// contains filtered or unexported fields
}

Mixed struct.

func NewMixed

func NewMixed(s string, d netproxy.Dialer) (*Mixed, error)

NewMixed returns a mixed proxy.

func (*Mixed) ListenAndServe

func (m *Mixed) ListenAndServe()

ListenAndServe listens on server's addr and serves connections.

func (*Mixed) Serve

func (m *Mixed) Serve(c net.Conn)

Serve serves connections.

type Options

type Options struct {
	Logger                *log.Logger
	Users                 map[string]string
	Certificate           string
	PrivateKey            string
	CongestionControl     string
	Fwmark                int
	SendThrough           string
	DialerLink            string
	DisableOutboundUdp443 bool
}

type Server

type Server struct {
	// contains filtered or unexported fields
}

func New

func New(opts *Options) (*Server, error)

func (*Server) Serve

func (s *Server) Serve(addr string) (err error)

type UdpEndpoint added in v0.2.0

type UdpEndpoint struct {
	NatTimeout time.Duration

	Dialer     netproxy.Dialer
	Metadata   any
	DialTarget string
	// contains filtered or unexported fields
}

func (*UdpEndpoint) Close added in v0.2.0

func (ue *UdpEndpoint) Close() error

func (*UdpEndpoint) WriteTo added in v0.2.0

func (ue *UdpEndpoint) WriteTo(b []byte, addr string) (int, error)

type UdpEndpointOptions added in v0.2.0

type UdpEndpointOptions struct {
	Handler    UdpHandler
	NatTimeout time.Duration
	// GetTarget is useful only if the underlay does not support Full-cone.
	GetDialOption func() (option *DialOption, err error)
}

type UdpEndpointPool added in v0.2.0

type UdpEndpointPool struct {
	// contains filtered or unexported fields
}

UdpEndpointPool is a full-cone udp conn pool

func NewUdpEndpointPool added in v0.2.0

func NewUdpEndpointPool() *UdpEndpointPool

func (*UdpEndpointPool) GetOrCreate added in v0.2.0

func (p *UdpEndpointPool) GetOrCreate(lAddr netip.AddrPort, createOption *UdpEndpointOptions) (udpEndpoint *UdpEndpoint, isNew bool, err error)

func (*UdpEndpointPool) Remove added in v0.2.0

func (p *UdpEndpointPool) Remove(lAddr netip.AddrPort, udpEndpoint *UdpEndpoint) (err error)

type UdpHandler added in v0.2.0

type UdpHandler func(data []byte, from netip.AddrPort, metadata any) error

Jump to

Keyboard shortcuts

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