Help us shape the future of Go! Take the 2026 Go Developer Survey

proxy

package
v1.1.9 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2025 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProxyPhaseNew         = "新建"
	ProxyPhaseWaitStart   = "等待启动"
	ProxyPhaseStartErr    = "启动错误"
	ProxyPhaseRunning     = "运行中"
	ProxyPhaseCheckFailed = "检查失败"
	ProxyPhaseClosed      = "已关闭"
)

Variables

This section is empty.

Functions

func RegisterProxyFactory

func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*BaseProxy, v1.ProxyConfigurer) Proxy)

Types

type BaseProxy

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

func (*BaseProxy) Close

func (pxy *BaseProxy) Close()

func (*BaseProxy) HandleTCPWorkConnection

func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *msg.StartWorkConn, encKey []byte)

Common handler for tcp work connections.

func (*BaseProxy) InWorkConn

func (pxy *BaseProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn)

func (*BaseProxy) Run

func (pxy *BaseProxy) Run() error

func (*BaseProxy) SetInWorkConnCallback

func (pxy *BaseProxy) SetInWorkConnCallback(cb func(*v1.ProxyBaseConfig, net.Conn, *msg.StartWorkConn) bool)

type GeneralTCPProxy

type GeneralTCPProxy struct {
	*BaseProxy
}

GeneralTCPProxy is a general implementation of Proxy interface for TCP protocol. If the default GeneralTCPProxy cannot meet the requirements, you can customize the implementation of the Proxy interface.

type Manager

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

func NewManager

func NewManager(
	ctx context.Context,
	clientCfg *v1.ClientCommonConfig,
	msgTransporter transport.MessageTransporter,
) *Manager

func (*Manager) Close

func (pm *Manager) Close()

func (*Manager) GetAllProxyStatus

func (pm *Manager) GetAllProxyStatus() []*WorkingStatus

func (*Manager) GetProxyStatus

func (pm *Manager) GetProxyStatus(name string) (*WorkingStatus, bool)

func (*Manager) HandleEvent

func (pm *Manager) HandleEvent(payload any) error

func (*Manager) HandleWorkConn

func (pm *Manager) HandleWorkConn(name string, workConn net.Conn, m *msg.StartWorkConn)

func (*Manager) SetInWorkConnCallback

func (pm *Manager) SetInWorkConnCallback(cb func(*v1.ProxyBaseConfig, net.Conn, *msg.StartWorkConn) bool)

func (*Manager) StartProxy

func (pm *Manager) StartProxy(name string, remoteAddr string, serverRespErr string) error

func (*Manager) UpdateAll

func (pm *Manager) UpdateAll(proxyCfgs []v1.ProxyConfigurer)

func (*Manager) UpdateProxyCertificate added in v1.1.9

func (pm *Manager) UpdateProxyCertificate(name string, crtBase64 string, keyBase64 string) error

type Proxy

type Proxy interface {
	Run() error
	// InWorkConn accept work connections registered to server.
	InWorkConn(net.Conn, *msg.StartWorkConn)
	SetInWorkConnCallback(func(*v1.ProxyBaseConfig, net.Conn, *msg.StartWorkConn) bool)
	Close()
}

Proxy defines how to handle work connections for different proxy type.

func NewGeneralTCPProxy

func NewGeneralTCPProxy(baseProxy *BaseProxy, _ v1.ProxyConfigurer) Proxy

func NewProxy

func NewProxy(
	ctx context.Context,
	pxyConf v1.ProxyConfigurer,
	clientCfg *v1.ClientCommonConfig,
	msgTransporter transport.MessageTransporter,
) (pxy Proxy)

func NewSUDPProxy

func NewSUDPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy

func NewUDPProxy

func NewUDPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy

func NewXTCPProxy

func NewXTCPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy

type SUDPProxy

type SUDPProxy struct {
	*BaseProxy
	// contains filtered or unexported fields
}

func (*SUDPProxy) Close

func (pxy *SUDPProxy) Close()

func (*SUDPProxy) InWorkConn

func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn)

func (*SUDPProxy) Run

func (pxy *SUDPProxy) Run() (err error)

type UDPProxy

type UDPProxy struct {
	*BaseProxy
	// contains filtered or unexported fields
}

func (*UDPProxy) Close

func (pxy *UDPProxy) Close()

func (*UDPProxy) InWorkConn

func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn)

func (*UDPProxy) Run

func (pxy *UDPProxy) Run() (err error)

type WorkingStatus

type WorkingStatus struct {
	Name  string             `json:"name"`
	Type  string             `json:"type"`
	Phase string             `json:"status"`
	Err   string             `json:"err"`
	Cfg   v1.ProxyConfigurer `json:"cfg"`

	// Got from server.
	RemoteAddr string `json:"remote_addr"`
}

type Wrapper

type Wrapper struct {
	WorkingStatus
	// contains filtered or unexported fields
}

func NewWrapper

func NewWrapper(
	ctx context.Context,
	cfg v1.ProxyConfigurer,
	clientCfg *v1.ClientCommonConfig,
	eventHandler event.Handler,
	msgTransporter transport.MessageTransporter,
) *Wrapper

func (*Wrapper) GetStatus

func (pw *Wrapper) GetStatus() *WorkingStatus

func (*Wrapper) InWorkConn

func (pw *Wrapper) InWorkConn(workConn net.Conn, m *msg.StartWorkConn)

func (*Wrapper) SetInWorkConnCallback

func (pw *Wrapper) SetInWorkConnCallback(cb func(*v1.ProxyBaseConfig, net.Conn, *msg.StartWorkConn) bool)

func (*Wrapper) SetRunningStatus

func (pw *Wrapper) SetRunningStatus(remoteAddr string, respErr string) error

func (*Wrapper) Start

func (pw *Wrapper) Start()

func (*Wrapper) Stop

func (pw *Wrapper) Stop()

func (*Wrapper) UpdateCertificate added in v1.1.9

func (pw *Wrapper) UpdateCertificate(crtBase64 string, keyBase64 string) error

type XTCPProxy

type XTCPProxy struct {
	*BaseProxy
	// contains filtered or unexported fields
}

func (*XTCPProxy) InWorkConn

func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.StartWorkConn)

Jump to

Keyboard shortcuts

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