core

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2021 License: GPL-3.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateCertificate

func GenerateCertificate(serverName string, template *x509.Certificate) (dnsName string, cert *x509.Certificate, keyPEM, certPEM []byte, err error)

func GetControlFunc

func GetControlFunc(conf *TcpConfig) func(network, address string, c syscall.RawConn) error

func ListenRawConn added in v0.6.0

func ListenRawConn(l net.Listener, nextHandler TransportHandler) error

func ListenWebsocket added in v0.6.0

func ListenWebsocket(l net.Listener, path string, nextHandler TransportHandler) error

func LoadCert added in v0.6.1

func LoadCert(file string) (*x509.Certificate, error)

Types

type AuthTransport added in v0.6.0

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

func NewAuthTransport added in v0.6.0

func NewAuthTransport(nextTransport Transport, auth string) *AuthTransport

func (*AuthTransport) Dial added in v0.6.0

func (t *AuthTransport) Dial(ctx context.Context) (net.Conn, error)

type AuthTransportHandler added in v0.6.0

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

func NewAuthTransportHandler added in v0.6.0

func NewAuthTransportHandler(nextHandler TransportHandler, auth string) *AuthTransportHandler

func (*AuthTransportHandler) Handle added in v0.6.0

func (h *AuthTransportHandler) Handle(conn net.Conn) error

type BaseTransportHandler added in v0.6.0

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

func NewBaseTransportHandler added in v0.6.0

func NewBaseTransportHandler(dst string, idleTimeout time.Duration) *BaseTransportHandler

func (*BaseTransportHandler) Handle added in v0.6.0

func (h *BaseTransportHandler) Handle(conn net.Conn) error

type Client added in v0.5.0

type Client struct {
	BindAddr      string
	DstAddr       string
	Websocket     bool
	WebsocketPath string
	Mux           int
	Auth          string

	ServerName         string
	CA                 string
	CertHash           string
	InsecureSkipVerify bool

	IdleTimeout    time.Duration
	AndroidVPNMode bool
	TFO            bool
	// contains filtered or unexported fields
}

func (*Client) ActiveAndServe added in v0.5.0

func (c *Client) ActiveAndServe() error

type MuxTransport added in v0.6.0

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

func NewMuxTransport added in v0.6.0

func NewMuxTransport(subTransport Transport, maxConcurrent int, idleTimeout time.Duration) *MuxTransport

func (*MuxTransport) Dial added in v0.6.0

func (m *MuxTransport) Dial(ctx context.Context) (net.Conn, error)

func (*MuxTransport) MarkDead added in v0.6.0

func (m *MuxTransport) MarkDead(sess *smux.Session)

type MuxTransportHandler added in v0.6.0

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

func NewMuxTransportHandler added in v0.6.0

func NewMuxTransportHandler(nextHandler TransportHandler, idleTimeout time.Duration) *MuxTransportHandler

func (*MuxTransportHandler) Handle added in v0.6.0

func (h *MuxTransportHandler) Handle(conn net.Conn) error

type RawConnTransport added in v0.6.0

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

func NewRawConnTransport added in v0.6.0

func NewRawConnTransport(addr string, dialer *net.Dialer) *RawConnTransport

func (*RawConnTransport) Dial added in v0.6.0

func (t *RawConnTransport) Dial(ctx context.Context) (net.Conn, error)

type SIP003Args

type SIP003Args struct {
	SS_REMOTE_HOST    string
	SS_REMOTE_PORT    string
	SS_LOCAL_HOST     string
	SS_LOCAL_PORT     string
	SS_PLUGIN_OPTIONS SpoArgs
}

SIP003Args contains sip003 args

func GetSIP003Args

func GetSIP003Args() (*SIP003Args, error)

GetSIP003Args get sip003 args from os.Environ(), if no args, returns nil

func (*SIP003Args) GetLocalAddr

func (args *SIP003Args) GetLocalAddr() string

func (*SIP003Args) GetRemoteAddr

func (args *SIP003Args) GetRemoteAddr() string

type Server added in v0.5.0

type Server struct {
	BindAddr string
	DstAddr  string

	Websocket     bool
	WebsocketPath string

	Cert, Key, ServerName string
	Auth                  string
	TFO                   bool
	IdleTimeout           time.Duration
	NoTLS                 bool
	// contains filtered or unexported fields
}

func (*Server) ActiveAndServe added in v0.5.0

func (s *Server) ActiveAndServe() error

type SpoArgs added in v0.4.4

type SpoArgs map[string]string

type TLSTransport added in v0.6.0

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

func NewTLSTransport added in v0.6.0

func NewTLSTransport(nextTransport Transport, conf *tls.Config) *TLSTransport

func (*TLSTransport) Dial added in v0.6.0

func (t *TLSTransport) Dial(ctx context.Context) (net.Conn, error)

type TcpConfig

type TcpConfig struct {
	AndroidVPN bool
	EnableTFO  bool
}

type Transport added in v0.6.0

type Transport interface {
	Dial(ctx context.Context) (net.Conn, error)
}

type TransportHandler added in v0.6.0

type TransportHandler interface {
	Handle(conn net.Conn) error
}

type WebsocketTransport added in v0.6.0

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

func NewWebsocketTransport added in v0.6.0

func NewWebsocketTransport(serverAddr, serverName, urlPath string, tlsConfig *tls.Config, dialer *net.Dialer) *WebsocketTransport

func (*WebsocketTransport) Dial added in v0.6.0

func (p *WebsocketTransport) Dial(ctx context.Context) (net.Conn, error)

Jump to

Keyboard shortcuts

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