SYMBOL INDEX (2183 symbols across 270 files) FILE: assets/assets.go type emptyFS (line 32) | type emptyFS struct method Open (line 34) | func (emptyFS) Open(name string) (http.File, error) { function Load (line 40) | func Load(path string) { function Register (line 52) | func Register(fileSystem fs.FS) { FILE: client/api_router.go method registerRouteHandlers (line 26) | func (svr *Service) registerRouteHandlers(helper *httppkg.RouterRegister... function healthz (line 66) | func healthz(w http.ResponseWriter, _ *http.Request) { function newAPIController (line 70) | func newAPIController(svr *Service) *adminapi.Controller { method getAllProxyStatus (line 79) | func (svr *Service) getAllProxyStatus() []*proxy.WorkingStatus { FILE: client/config_manager.go type serviceConfigManager (line 18) | type serviceConfigManager struct method ReloadFromFile (line 26) | func (m *serviceConfigManager) ReloadFromFile(strict bool) error { method ReadConfigFile (line 56) | func (m *serviceConfigManager) ReadConfigFile() (string, error) { method WriteConfigFile (line 68) | func (m *serviceConfigManager) WriteConfigFile(content []byte) error { method GetProxyStatus (line 79) | func (m *serviceConfigManager) GetProxyStatus() []*proxy.WorkingStatus { method GetProxyConfig (line 83) | func (m *serviceConfigManager) GetProxyConfig(name string) (v1.ProxyCo... method GetVisitorConfig (line 104) | func (m *serviceConfigManager) GetVisitorConfig(name string) (v1.Visit... method IsStoreProxyEnabled (line 125) | func (m *serviceConfigManager) IsStoreProxyEnabled(name string) bool { method StoreEnabled (line 146) | func (m *serviceConfigManager) StoreEnabled() bool { method ListStoreProxies (line 153) | func (m *serviceConfigManager) ListStoreProxies() ([]v1.ProxyConfigure... method GetStoreProxy (line 161) | func (m *serviceConfigManager) GetStoreProxy(name string) (v1.ProxyCon... method CreateStoreProxy (line 178) | func (m *serviceConfigManager) CreateStoreProxy(cfg v1.ProxyConfigurer... method UpdateStoreProxy (line 200) | func (m *serviceConfigManager) UpdateStoreProxy(name string, cfg v1.Pr... method DeleteStoreProxy (line 232) | func (m *serviceConfigManager) DeleteStoreProxy(name string) error { method ListStoreVisitors (line 253) | func (m *serviceConfigManager) ListStoreVisitors() ([]v1.VisitorConfig... method GetStoreVisitor (line 261) | func (m *serviceConfigManager) GetStoreVisitor(name string) (v1.Visito... method CreateStoreVisitor (line 278) | func (m *serviceConfigManager) CreateStoreVisitor(cfg v1.VisitorConfig... method UpdateStoreVisitor (line 301) | func (m *serviceConfigManager) UpdateStoreVisitor(name string, cfg v1.... method DeleteStoreVisitor (line 333) | func (m *serviceConfigManager) DeleteStoreVisitor(name string) error { method GracefulClose (line 354) | func (m *serviceConfigManager) GracefulClose(d time.Duration) { method storeSourceOrError (line 358) | func (m *serviceConfigManager) storeSourceOrError() (*source.StoreSour... method withStoreMutationAndReload (line 369) | func (m *serviceConfigManager) withStoreMutationAndReload( method withStoreProxyMutationAndReload (line 390) | func (m *serviceConfigManager) withStoreProxyMutationAndReload( method withStoreVisitorMutationAndReload (line 416) | func (m *serviceConfigManager) withStoreVisitorMutationAndReload( method validateStoreProxyConfigurer (line 442) | func (m *serviceConfigManager) validateStoreProxyConfigurer(cfg v1.Pro... method validateStoreVisitorConfigurer (line 454) | func (m *serviceConfigManager) validateStoreVisitorConfigurer(cfg v1.V... function newServiceConfigManager (line 22) | func newServiceConfigManager(svr *Service) configmgmt.ConfigManager { FILE: client/config_manager_test.go function newTestRawTCPProxyConfig (line 13) | func newTestRawTCPProxyConfig(name string) *v1.TCPProxyConfig { function TestServiceConfigManagerCreateStoreProxyConflict (line 25) | func TestServiceConfigManagerCreateStoreProxyConflict(t *testing.T) { function TestServiceConfigManagerCreateStoreProxyKeepsStoreOnReloadFailure (line 57) | func TestServiceConfigManagerCreateStoreProxyKeepsStoreOnReloadFailure(t... function TestServiceConfigManagerCreateStoreProxyStoreDisabled (line 84) | func TestServiceConfigManagerCreateStoreProxyStoreDisabled(t *testing.T) { function TestServiceConfigManagerCreateStoreProxyDoesNotPersistRuntimeDefaults (line 100) | func TestServiceConfigManagerCreateStoreProxyDoesNotPersistRuntimeDefaul... FILE: client/configmgmt/types.go type ConfigManager (line 19) | type ConfigManager interface FILE: client/connector.go type Connector (line 38) | type Connector interface type defaultConnectorImpl (line 45) | type defaultConnectorImpl struct method Open (line 65) | func (c *defaultConnectorImpl) Open() error { method Connect (line 129) | func (c *defaultConnectorImpl) Connect() (net.Conn, error) { method realConnect (line 147) | func (c *defaultConnectorImpl) realConnect() (net.Conn, error) { method Close (line 217) | func (c *defaultConnectorImpl) Close() error { function NewConnector (line 54) | func NewConnector(ctx context.Context, cfg *v1.ClientCommonConfig) Conne... FILE: client/control.go type SessionContext (line 36) | type SessionContext struct type Control (line 55) | type Control struct method Run (line 112) | func (ctl *Control) Run(proxyCfgs []v1.ProxyConfigurer, visitorCfgs []... method SetInWorkConnCallback (line 122) | func (ctl *Control) SetInWorkConnCallback(cb func(*v1.ProxyBaseConfig,... method handleReqWorkConn (line 126) | func (ctl *Control) handleReqWorkConn(_ msg.Message) { method handleNewProxyResp (line 166) | func (ctl *Control) handleNewProxyResp(m msg.Message) { method handleNatHoleResp (line 180) | func (ctl *Control) handleNatHoleResp(m msg.Message) { method handlePong (line 191) | func (ctl *Control) handlePong(m msg.Message) { method closeSession (line 205) | func (ctl *Control) closeSession() { method Close (line 210) | func (ctl *Control) Close() error { method GracefulClose (line 214) | func (ctl *Control) GracefulClose(d time.Duration) error { method Done (line 225) | func (ctl *Control) Done() <-chan struct{} { method connectServer (line 230) | func (ctl *Control) connectServer() (net.Conn, error) { method registerMsgHandlers (line 234) | func (ctl *Control) registerMsgHandlers() { method heartbeatWorker (line 242) | func (ctl *Control) heartbeatWorker() { method worker (line 282) | func (ctl *Control) worker() { method UpdateAllConfigurer (line 296) | func (ctl *Control) UpdateAllConfigurer(proxyCfgs []v1.ProxyConfigurer... function NewControl (line 84) | func NewControl(ctx context.Context, sessionCtx *SessionContext) (*Contr... FILE: client/event/event.go type Handler (line 11) | type Handler type StartProxyPayload (line 13) | type StartProxyPayload struct type CloseProxyPayload (line 17) | type CloseProxyPayload struct FILE: client/health/health.go type Monitor (line 33) | type Monitor struct method Start (line 97) | func (monitor *Monitor) Start() { method Stop (line 101) | func (monitor *Monitor) Stop() { method checkWorker (line 105) | func (monitor *Monitor) checkWorker() { method doCheck (line 141) | func (monitor *Monitor) doCheck(ctx context.Context) error { method doTCPCheck (line 152) | func (monitor *Monitor) doTCPCheck(ctx context.Context) error { method doHTTPCheck (line 167) | func (monitor *Monitor) doHTTPCheck(ctx context.Context) error { function NewMonitor (line 54) | func NewMonitor(ctx context.Context, cfg v1.HealthCheckConfig, addr string, FILE: client/http/controller.go type Controller (line 35) | type Controller struct method toHTTPError (line 53) | func (c *Controller) toHTTPError(err error) error { method Reload (line 71) | func (c *Controller) Reload(ctx *httppkg.Context) (any, error) { method Stop (line 85) | func (c *Controller) Stop(ctx *httppkg.Context) (any, error) { method Status (line 91) | func (c *Controller) Status(ctx *httppkg.Context) (any, error) { method GetConfig (line 114) | func (c *Controller) GetConfig(ctx *httppkg.Context) (any, error) { method PutConfig (line 123) | func (c *Controller) PutConfig(ctx *httppkg.Context) (any, error) { method buildProxyStatusResp (line 139) | func (c *Controller) buildProxyStatusResp(status *proxy.WorkingStatus)... method GetProxyConfig (line 166) | func (c *Controller) GetProxyConfig(ctx *httppkg.Context) (any, error) { method GetVisitorConfig (line 185) | func (c *Controller) GetVisitorConfig(ctx *httppkg.Context) (any, erro... method ListStoreProxies (line 203) | func (c *Controller) ListStoreProxies(ctx *httppkg.Context) (any, erro... method GetStoreProxy (line 223) | func (c *Controller) GetStoreProxy(ctx *httppkg.Context) (any, error) { method CreateStoreProxy (line 242) | func (c *Controller) CreateStoreProxy(ctx *httppkg.Context) (any, erro... method UpdateStoreProxy (line 272) | func (c *Controller) UpdateStoreProxy(ctx *httppkg.Context) (any, erro... method DeleteStoreProxy (line 307) | func (c *Controller) DeleteStoreProxy(ctx *httppkg.Context) (any, erro... method ListStoreVisitors (line 319) | func (c *Controller) ListStoreVisitors(ctx *httppkg.Context) (any, err... method GetStoreVisitor (line 339) | func (c *Controller) GetStoreVisitor(ctx *httppkg.Context) (any, error) { method CreateStoreVisitor (line 358) | func (c *Controller) CreateStoreVisitor(ctx *httppkg.Context) (any, er... method UpdateStoreVisitor (line 388) | func (c *Controller) UpdateStoreVisitor(ctx *httppkg.Context) (any, er... method DeleteStoreVisitor (line 423) | func (c *Controller) DeleteStoreVisitor(ctx *httppkg.Context) (any, er... type ControllerParams (line 41) | type ControllerParams struct function NewController (line 46) | func NewController(params ControllerParams) *Controller { FILE: client/http/controller_test.go type fakeConfigManager (line 22) | type fakeConfigManager struct method ReloadFromFile (line 45) | func (m *fakeConfigManager) ReloadFromFile(strict bool) error { method ReadConfigFile (line 52) | func (m *fakeConfigManager) ReadConfigFile() (string, error) { method WriteConfigFile (line 59) | func (m *fakeConfigManager) WriteConfigFile(content []byte) error { method GetProxyStatus (line 66) | func (m *fakeConfigManager) GetProxyStatus() []*proxy.WorkingStatus { method IsStoreProxyEnabled (line 73) | func (m *fakeConfigManager) IsStoreProxyEnabled(name string) bool { method StoreEnabled (line 80) | func (m *fakeConfigManager) StoreEnabled() bool { method GetProxyConfig (line 87) | func (m *fakeConfigManager) GetProxyConfig(name string) (v1.ProxyConfi... method GetVisitorConfig (line 94) | func (m *fakeConfigManager) GetVisitorConfig(name string) (v1.VisitorC... method ListStoreProxies (line 101) | func (m *fakeConfigManager) ListStoreProxies() ([]v1.ProxyConfigurer, ... method GetStoreProxy (line 108) | func (m *fakeConfigManager) GetStoreProxy(name string) (v1.ProxyConfig... method CreateStoreProxy (line 115) | func (m *fakeConfigManager) CreateStoreProxy(cfg v1.ProxyConfigurer) (... method UpdateStoreProxy (line 122) | func (m *fakeConfigManager) UpdateStoreProxy(name string, cfg v1.Proxy... method DeleteStoreProxy (line 129) | func (m *fakeConfigManager) DeleteStoreProxy(name string) error { method ListStoreVisitors (line 136) | func (m *fakeConfigManager) ListStoreVisitors() ([]v1.VisitorConfigure... method GetStoreVisitor (line 143) | func (m *fakeConfigManager) GetStoreVisitor(name string) (v1.VisitorCo... method CreateStoreVisitor (line 150) | func (m *fakeConfigManager) CreateStoreVisitor(cfg v1.VisitorConfigure... method UpdateStoreVisitor (line 157) | func (m *fakeConfigManager) UpdateStoreVisitor(name string, cfg v1.Vis... method DeleteStoreVisitor (line 164) | func (m *fakeConfigManager) DeleteStoreVisitor(name string) error { method GracefulClose (line 171) | func (m *fakeConfigManager) GracefulClose(d time.Duration) { function newRawTCPProxyConfig (line 177) | func newRawTCPProxyConfig(name string) *v1.TCPProxyConfig { function TestBuildProxyStatusRespStoreSourceEnabled (line 189) | func TestBuildProxyStatusRespStoreSourceEnabled(t *testing.T) { function TestReloadErrorMapping (line 216) | func TestReloadErrorMapping(t *testing.T) { function TestStoreProxyErrorMapping (line 241) | func TestStoreProxyErrorMapping(t *testing.T) { function TestStoreVisitorErrorMapping (line 276) | func TestStoreVisitorErrorMapping(t *testing.T) { function TestCreateStoreProxyIgnoresUnknownFields (line 297) | func TestCreateStoreProxyIgnoresUnknownFields(t *testing.T) { function TestCreateStoreVisitorIgnoresUnknownFields (line 329) | func TestCreateStoreVisitorIgnoresUnknownFields(t *testing.T) { function TestCreateStoreProxyPluginUnknownFieldsAreIgnored (line 364) | func TestCreateStoreProxyPluginUnknownFieldsAreIgnored(t *testing.T) { function TestCreateStoreVisitorPluginUnknownFieldsAreIgnored (line 400) | func TestCreateStoreVisitorPluginUnknownFieldsAreIgnored(t *testing.T) { function TestUpdateStoreProxyRejectsMismatchedTypeBlock (line 439) | func TestUpdateStoreProxyRejectsMismatchedTypeBlock(t *testing.T) { function TestUpdateStoreProxyRejectsNameMismatch (line 453) | func TestUpdateStoreProxyRejectsNameMismatch(t *testing.T) { function TestListStoreProxiesReturnsSortedPayload (line 467) | func TestListStoreProxiesReturnsSortedPayload(t *testing.T) { function fmtError (line 495) | func fmtError(sentinel error, msg string) error { function assertHTTPCode (line 499) | func assertHTTPCode(t *testing.T, err error, expected int) { function TestUpdateStoreProxyReturnsTypedPayload (line 510) | func TestUpdateStoreProxyReturnsTypedPayload(t *testing.T) { function TestGetProxyConfigFromManager (line 549) | func TestGetProxyConfigFromManager(t *testing.T) { function TestGetProxyConfigNotFound (line 587) | func TestGetProxyConfigNotFound(t *testing.T) { function TestGetVisitorConfigFromManager (line 607) | func TestGetVisitorConfigFromManager(t *testing.T) { function TestGetVisitorConfigNotFound (line 644) | func TestGetVisitorConfigNotFound(t *testing.T) { FILE: client/http/model/proxy_definition.go type ProxyDefinition (line 10) | type ProxyDefinition struct method Validate (line 24) | func (p *ProxyDefinition) Validate(pathName string, isUpdate bool) err... method ToConfigurer (line 45) | func (p *ProxyDefinition) ToConfigurer() (v1.ProxyConfigurer, error) { method activeBlock (line 92) | func (p *ProxyDefinition) activeBlock() (v1.ProxyConfigurer, string, i... function ProxyDefinitionFromConfigurer (line 57) | func ProxyDefinitionFromConfigurer(cfg v1.ProxyConfigurer) (ProxyDefinit... function IsProxyType (line 141) | func IsProxyType(typ string) bool { FILE: client/http/model/types.go constant SourceStore (line 17) | SourceStore = "store" type StatusResp (line 20) | type StatusResp type ProxyStatusResp (line 23) | type ProxyStatusResp struct type ProxyListResp (line 35) | type ProxyListResp struct type VisitorListResp (line 40) | type VisitorListResp struct FILE: client/http/model/visitor_definition.go type VisitorDefinition (line 10) | type VisitorDefinition struct method Validate (line 19) | func (p *VisitorDefinition) Validate(pathName string, isUpdate bool) e... method ToConfigurer (line 40) | func (p *VisitorDefinition) ToConfigurer() (v1.VisitorConfigurer, erro... method activeBlock (line 77) | func (p *VisitorDefinition) activeBlock() (v1.VisitorConfigurer, strin... function VisitorDefinitionFromConfigurer (line 52) | func VisitorDefinitionFromConfigurer(cfg v1.VisitorConfigurer) (VisitorD... function IsVisitorType (line 100) | func IsVisitorType(typ string) bool { FILE: client/proxy/general_tcp.go function init (line 23) | func init() { type GeneralTCPProxy (line 39) | type GeneralTCPProxy struct function NewGeneralTCPProxy (line 43) | func NewGeneralTCPProxy(baseProxy *BaseProxy, _ v1.ProxyConfigurer) Proxy { FILE: client/proxy/proxy.go function RegisterProxyFactory (line 44) | func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*Base... type Proxy (line 49) | type Proxy interface function NewProxy (line 57) | func NewProxy( type BaseProxy (line 89) | type BaseProxy struct method Run (line 106) | func (pxy *BaseProxy) Run() error { method Close (line 120) | func (pxy *BaseProxy) Close() { method wrapWorkConn (line 131) | func (pxy *BaseProxy) wrapWorkConn(conn net.Conn, encKey []byte) (io.R... method SetInWorkConnCallback (line 153) | func (pxy *BaseProxy) SetInWorkConnCallback(cb func(*v1.ProxyBaseConfi... method InWorkConn (line 157) | func (pxy *BaseProxy) InWorkConn(conn net.Conn, m *msg.StartWorkConn) { method HandleTCPWorkConnection (line 167) | func (pxy *BaseProxy) HandleTCPWorkConnection(workConn net.Conn, m *ms... FILE: client/proxy/proxy_manager.go type Manager (line 34) | type Manager struct method StartProxy (line 67) | func (pm *Manager) StartProxy(name string, remoteAddr string, serverRe... method SetInWorkConnCallback (line 82) | func (pm *Manager) SetInWorkConnCallback(cb func(*v1.ProxyBaseConfig, ... method Close (line 86) | func (pm *Manager) Close() { method HandleWorkConn (line 95) | func (pm *Manager) HandleWorkConn(name string, workConn net.Conn, m *m... method HandleEvent (line 106) | func (pm *Manager) HandleEvent(payload any) error { method GetAllProxyStatus (line 120) | func (pm *Manager) GetAllProxyStatus() []*WorkingStatus { method GetProxyStatus (line 130) | func (pm *Manager) GetProxyStatus(name string) (*WorkingStatus, bool) { method UpdateAll (line 139) | func (pm *Manager) UpdateAll(proxyCfgs []v1.ProxyConfigurer) { function NewManager (line 49) | func NewManager( FILE: client/proxy/proxy_wrapper.go constant ProxyPhaseNew (line 39) | ProxyPhaseNew = "new" constant ProxyPhaseWaitStart (line 40) | ProxyPhaseWaitStart = "wait start" constant ProxyPhaseStartErr (line 41) | ProxyPhaseStartErr = "start error" constant ProxyPhaseRunning (line 42) | ProxyPhaseRunning = "running" constant ProxyPhaseCheckFailed (line 43) | ProxyPhaseCheckFailed = "check failed" constant ProxyPhaseClosed (line 44) | ProxyPhaseClosed = "closed" type WorkingStatus (line 53) | type WorkingStatus struct type Wrapper (line 64) | type Wrapper struct method SetInWorkConnCallback (line 134) | func (pw *Wrapper) SetInWorkConnCallback(cb func(*v1.ProxyBaseConfig, ... method SetRunningStatus (line 138) | func (pw *Wrapper) SetRunningStatus(remoteAddr string, respErr string)... method Start (line 166) | func (pw *Wrapper) Start() { method Stop (line 173) | func (pw *Wrapper) Stop() { method close (line 186) | func (pw *Wrapper) close() { method checkWorker (line 194) | func (pw *Wrapper) checkWorker() { method statusNormalCallback (line 241) | func (pw *Wrapper) statusNormalCallback() { method statusFailedCallback (line 253) | func (pw *Wrapper) statusFailedCallback() { method InWorkConn (line 265) | func (pw *Wrapper) InWorkConn(workConn net.Conn, m *msg.StartWorkConn) { method GetStatus (line 278) | func (pw *Wrapper) GetStatus() *WorkingStatus { function NewWrapper (line 94) | func NewWrapper( FILE: client/proxy/sudp.go function init (line 34) | func init() { type SUDPProxy (line 38) | type SUDPProxy struct method Run (line 60) | func (pxy *SUDPProxy) Run() (err error) { method Close (line 68) | func (pxy *SUDPProxy) Close() { method InWorkConn (line 79) | func (pxy *SUDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { function NewSUDPProxy (line 48) | func NewSUDPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy { FILE: client/proxy/udp.go function init (line 33) | func init() { type UDPProxy (line 37) | type UDPProxy struct method Run (line 62) | func (pxy *UDPProxy) Run() (err error) { method Close (line 70) | func (pxy *UDPProxy) Close() { method InWorkConn (line 88) | func (pxy *UDPProxy) InWorkConn(conn net.Conn, _ *msg.StartWorkConn) { function NewUDPProxy (line 51) | func NewUDPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy { FILE: client/proxy/xtcp.go function init (line 36) | func init() { type XTCPProxy (line 40) | type XTCPProxy struct method InWorkConn (line 57) | func (pxy *XTCPProxy) InWorkConn(conn net.Conn, startWorkConnMsg *msg.... method listenByKCP (line 134) | func (pxy *XTCPProxy) listenByKCP(listenConn *net.UDPConn, raddr *net.... method listenByQUIC (line 172) | func (pxy *XTCPProxy) listenByQUIC(listenConn *net.UDPConn, _ *net.UDP... function NewXTCPProxy (line 46) | func NewXTCPProxy(baseProxy *BaseProxy, cfg v1.ProxyConfigurer) Proxy { FILE: client/service.go function init (line 47) | func init() { type cancelErr (line 57) | type cancelErr struct method Error (line 61) | func (e cancelErr) Error() string { type ServiceOptions (line 66) | type ServiceOptions struct function setServiceOptionsDefault (line 99) | func setServiceOptionsDefault(options *ServiceOptions) error { type Service (line 112) | type Service struct method Run (line 224) | func (svr *Service) Run(ctx context.Context) error { method keepControllerWorking (line 275) | func (svr *Service) keepControllerWorking() { method login (line 309) | func (svr *Service) login() (conn net.Conn, connector Connector, err e... method loopLoginUntilSuccess (line 374) | func (svr *Service) loopLoginUntilSuccess(maxInterval time.Duration, f... method UpdateAllConfigurer (line 433) | func (svr *Service) UpdateAllConfigurer(proxyCfgs []v1.ProxyConfigurer... method UpdateConfigSource (line 449) | func (svr *Service) UpdateConfigSource( method Close (line 478) | func (svr *Service) Close() { method GracefulClose (line 482) | func (svr *Service) GracefulClose(d time.Duration) { method stop (line 487) | func (svr *Service) stop() { method getProxyStatus (line 513) | func (svr *Service) getProxyStatus(name string) (*proxy.WorkingStatus,... method getVisitorCfg (line 524) | func (svr *Service) getVisitorCfg(name string) (v1.VisitorConfigurer, ... method StatusExporter (line 535) | func (svr *Service) StatusExporter() StatusExporter { method reloadConfigFromSources (line 553) | func (svr *Service) reloadConfigFromSources() error { method reloadConfigFromSourcesLocked (line 559) | func (svr *Service) reloadConfigFromSourcesLocked() error { function NewService (line 161) | func NewService(options ServiceOptions) (*Service, error) { type StatusExporter (line 541) | type StatusExporter interface type statusExporterImpl (line 545) | type statusExporterImpl struct method GetProxyStatus (line 549) | func (s *statusExporterImpl) GetProxyStatus(name string) (*proxy.Worki... FILE: client/service_test.go type failingConnector (line 18) | type failingConnector struct method Open (line 22) | func (c *failingConnector) Open() error { method Connect (line 26) | func (c *failingConnector) Connect() (net.Conn, error) { method Close (line 30) | func (c *failingConnector) Close() error { function getFreeTCPPort (line 34) | func getFreeTCPPort(t *testing.T) int { function TestRunStopsStartedComponentsOnInitialLoginFailure (line 46) | func TestRunStopsStartedComponentsOnInitialLoginFailure(t *testing.T) { function TestNewServiceDoesNotLeakAdminListenerOnAuthBuildFailure (line 85) | func TestNewServiceDoesNotLeakAdminListenerOnAuthBuildFailure(t *testing... function TestUpdateConfigSourceRollsBackReloadCommonOnReplaceAllFailure (line 118) | func TestUpdateConfigSourceRollsBackReloadCommonOnReplaceAllFailure(t *t... function TestUpdateConfigSourceKeepsReloadCommonOnReloadFailure (line 142) | func TestUpdateConfigSourceKeepsReloadCommonOnReloadFailure(t *testing.T) { function TestReloadConfigFromSourcesDoesNotMutateStoreConfigs (line 174) | func TestReloadConfigFromSourcesDoesNotMutateStoreConfigs(t *testing.T) { FILE: client/visitor/stcp.go type STCPVisitor (line 27) | type STCPVisitor struct method Run (line 33) | func (sv *STCPVisitor) Run() (err error) { method Close (line 50) | func (sv *STCPVisitor) Close() { method handleConn (line 54) | func (sv *STCPVisitor) handleConn(userConn net.Conn) { FILE: client/visitor/sudp.go type SUDPVisitor (line 33) | type SUDPVisitor struct method Run (line 46) | func (sv *SUDPVisitor) Run() (err error) { method dispatcher (line 70) | func (sv *SUDPVisitor) dispatcher() { method worker (line 113) | func (sv *SUDPVisitor) worker(workConn net.Conn, firstPacket *msg.UDPP... method getNewVisitorConn (line 201) | func (sv *SUDPVisitor) getNewVisitorConn() (net.Conn, func(), error) { method Close (line 214) | func (sv *SUDPVisitor) Close() { FILE: client/visitor/visitor.go type Helper (line 39) | type Helper interface type Visitor (line 54) | type Visitor interface function NewVisitor (line 60) | func NewVisitor( type BaseVisitor (line 115) | type BaseVisitor struct method AcceptConn (line 126) | func (v *BaseVisitor) AcceptConn(conn net.Conn) error { method acceptLoop (line 130) | func (v *BaseVisitor) acceptLoop(l net.Listener, name string, handleCo... method Close (line 142) | func (v *BaseVisitor) Close() { method dialRawVisitorConn (line 154) | func (v *BaseVisitor) dialRawVisitorConn(cfg *v1.VisitorBaseConfig) (n... function wrapVisitorConn (line 192) | func wrapVisitorConn(conn io.ReadWriteCloser, cfg *v1.VisitorBaseConfig)... FILE: client/visitor/visitor_manager.go type Manager (line 33) | type Manager struct method keepVisitorsRunning (line 76) | func (vm *Manager) keepVisitorsRunning() { method Close (line 101) | func (vm *Manager) Close() { method startVisitor (line 115) | func (vm *Manager) startVisitor(cfg v1.VisitorConfigurer) (err error) { method UpdateAll (line 133) | func (vm *Manager) UpdateAll(cfgs []v1.VisitorConfigurer) { method TransferConn (line 184) | func (vm *Manager) TransferConn(name string, conn net.Conn) error { method GetVisitorCfg (line 194) | func (vm *Manager) GetVisitorCfg(name string) (v1.VisitorConfigurer, b... function NewManager (line 48) | func NewManager( type visitorHelperImpl (line 201) | type visitorHelperImpl struct method ConnectServer (line 209) | func (v *visitorHelperImpl) ConnectServer() (net.Conn, error) { method TransferConn (line 213) | func (v *visitorHelperImpl) TransferConn(name string, conn net.Conn) e... method MsgTransporter (line 217) | func (v *visitorHelperImpl) MsgTransporter() transport.MessageTranspor... method VNetController (line 221) | func (v *visitorHelperImpl) VNetController() *vnet.Controller { method RunID (line 225) | func (v *visitorHelperImpl) RunID() string { FILE: client/visitor/xtcp.go type XTCPVisitor (line 44) | type XTCPVisitor struct method Run (line 54) | func (sv *XTCPVisitor) Run() (err error) { method Close (line 84) | func (sv *XTCPVisitor) Close() { method processTunnelStartEvents (line 96) | func (sv *XTCPVisitor) processTunnelStartEvents() { method keepTunnelOpenWorker (line 113) | func (sv *XTCPVisitor) keepTunnelOpenWorker() { method handleConn (line 139) | func (sv *XTCPVisitor) handleConn(userConn net.Conn) { method openTunnel (line 202) | func (sv *XTCPVisitor) openTunnel(ctx context.Context) (conn net.Conn,... method getTunnelConn (line 233) | func (sv *XTCPVisitor) getTunnelConn(ctx context.Context) (net.Conn, e... method makeNatHole (line 252) | func (sv *XTCPVisitor) makeNatHole() { type TunnelSession (line 321) | type TunnelSession interface type KCPTunnelSession (line 327) | type KCPTunnelSession struct method Init (line 337) | func (ks *KCPTunnelSession) Init(listenConn *net.UDPConn, raddr *net.U... method OpenConn (line 366) | func (ks *KCPTunnelSession) OpenConn(_ context.Context) (net.Conn, err... method Close (line 376) | func (ks *KCPTunnelSession) Close() { function NewKCPTunnelSession (line 333) | func NewKCPTunnelSession() TunnelSession { type QUICTunnelSession (line 389) | type QUICTunnelSession struct method Init (line 403) | func (qs *QUICTunnelSession) Init(listenConn *net.UDPConn, raddr *net.... method OpenConn (line 425) | func (qs *QUICTunnelSession) OpenConn(ctx context.Context) (net.Conn, ... method Close (line 439) | func (qs *QUICTunnelSession) Close() { function NewQUICTunnelSession (line 397) | func NewQUICTunnelSession(clientCfg *v1.ClientCommonConfig) TunnelSession { FILE: cmd/frpc/main.go function main (line 23) | func main() { FILE: cmd/frpc/sub/admin.go function init (line 34) | func init() { function NewAdminCommand (line 52) | func NewAdminCommand(name, short string, handler func(*v1.ClientCommonCo... function ReloadHandler (line 75) | func ReloadHandler(clientCfg *v1.ClientCommonConfig) error { function StatusHandler (line 87) | func StatusHandler(clientCfg *v1.ClientCommonConfig) error { function StopHandler (line 115) | func StopHandler(clientCfg *v1.ClientCommonConfig) error { FILE: cmd/frpc/sub/nathole.go function init (line 33) | func init() { function validateForNatHoleDiscovery (line 95) | func validateForNatHoleDiscovery(cfg *v1.ClientCommonConfig) error { FILE: cmd/frpc/sub/proxy.go function init (line 48) | func init() { function NewProxyCommand (line 73) | func NewProxyCommand(name string, c v1.ProxyConfigurer, clientCfg *v1.Cl... function NewVisitorCommand (line 106) | func NewVisitorCommand(name string, c v1.VisitorConfigurer, clientCfg *v... function startService (line 138) | func startService( FILE: cmd/frpc/sub/root.go function init (line 50) | func init() { function runMultipleClients (line 88) | func runMultipleClients(cfgDir string, unsafeFeatures *security.UnsafeFe... function Execute (line 109) | func Execute() { function handleTermSignal (line 116) | func handleTermSignal(svr *client.Service) { function runClient (line 123) | func runClient(cfgFilePath string, unsafeFeatures *security.UnsafeFeatur... function runClientWithAggregator (line 144) | func runClientWithAggregator(result *config.ClientConfigLoadResult, unsa... function startServiceWithAggregator (line 192) | func startServiceWithAggregator( FILE: cmd/frpc/sub/verify.go function init (line 28) | func init() { FILE: cmd/frps/main.go function main (line 23) | func main() { FILE: cmd/frps/root.go function init (line 43) | func init() { function Execute (line 104) | func Execute() { function runServer (line 111) | func runServer(cfg *v1.ServerConfig) (err error) { FILE: cmd/frps/verify.go function init (line 28) | func init() { FILE: pkg/auth/auth.go type Setter (line 25) | type Setter interface type ClientAuth (line 31) | type ClientAuth struct method EncryptionKey (line 36) | func (a *ClientAuth) EncryptionKey() []byte { function BuildClientAuth (line 42) | func BuildClientAuth(cfg *v1.AuthClientConfig) (*ClientAuth, error) { function NewAuthSetter (line 64) | func NewAuthSetter(cfg v1.AuthClientConfig) (authProvider Setter, err er... type Verifier (line 83) | type Verifier interface type ServerAuth (line 89) | type ServerAuth struct method EncryptionKey (line 94) | func (a *ServerAuth) EncryptionKey() []byte { function BuildServerAuth (line 100) | func BuildServerAuth(cfg *v1.AuthServerConfig) (*ServerAuth, error) { function NewAuthVerifier (line 118) | func NewAuthVerifier(cfg v1.AuthServerConfig) (authVerifier Verifier) { FILE: pkg/auth/legacy/legacy.go type BaseConfig (line 17) | type BaseConfig struct function getDefaultBaseConf (line 31) | func getDefaultBaseConf() BaseConfig { type ClientConfig (line 39) | type ClientConfig struct function GetDefaultClientConf (line 45) | func GetDefaultClientConf() ClientConfig { type ServerConfig (line 53) | type ServerConfig struct function GetDefaultServerConf (line 59) | func GetDefaultServerConf() ServerConfig { type OidcClientConfig (line 67) | type OidcClientConfig struct function getDefaultOidcClientConf (line 93) | func getDefaultOidcClientConf() OidcClientConfig { type OidcServerConfig (line 104) | type OidcServerConfig struct function getDefaultOidcServerConf (line 125) | func getDefaultOidcServerConf() OidcServerConfig { type TokenConfig (line 134) | type TokenConfig struct function getDefaultTokenConf (line 141) | func getDefaultTokenConf() TokenConfig { FILE: pkg/auth/oidc.go function createOIDCHTTPClient (line 38) | func createOIDCHTTPClient(trustedCAFile string, insecureSkipVerify bool,... type nonCachingTokenSource (line 83) | type nonCachingTokenSource struct method Token (line 88) | func (s *nonCachingTokenSource) Token() (*oauth2.Token, error) { type oidcTokenSource (line 98) | type oidcTokenSource struct method Token (line 106) | func (s *oidcTokenSource) Token() (*oauth2.Token, error) { type OidcAuthProvider (line 126) | type OidcAuthProvider struct method generateAccessToken (line 188) | func (auth *OidcAuthProvider) generateAccessToken() (accessToken strin... method SetLogin (line 196) | func (auth *OidcAuthProvider) SetLogin(loginMsg *msg.Login) (err error) { method SetPing (line 201) | func (auth *OidcAuthProvider) SetPing(pingMsg *msg.Ping) (err error) { method SetNewWorkConn (line 210) | func (auth *OidcAuthProvider) SetNewWorkConn(newWorkConnMsg *msg.NewWo... function NewOidcAuthSetter (line 132) | func NewOidcAuthSetter(additionalAuthScopes []v1.AuthScope, cfg v1.AuthO... type OidcTokenSourceAuthProvider (line 219) | type OidcTokenSourceAuthProvider struct method generateAccessToken (line 232) | func (auth *OidcTokenSourceAuthProvider) generateAccessToken() (access... method SetLogin (line 241) | func (auth *OidcTokenSourceAuthProvider) SetLogin(loginMsg *msg.Login)... method SetPing (line 246) | func (auth *OidcTokenSourceAuthProvider) SetPing(pingMsg *msg.Ping) (e... method SetNewWorkConn (line 255) | func (auth *OidcTokenSourceAuthProvider) SetNewWorkConn(newWorkConnMsg... function NewOidcTokenSourceAuthSetter (line 225) | func NewOidcTokenSourceAuthSetter(additionalAuthScopes []v1.AuthScope, v... type TokenVerifier (line 264) | type TokenVerifier interface type OidcAuthConsumer (line 268) | type OidcAuthConsumer struct method VerifyLogin (line 298) | func (auth *OidcAuthConsumer) VerifyLogin(loginMsg *msg.Login) (err er... method verifyPostLoginToken (line 309) | func (auth *OidcAuthConsumer) verifyPostLoginToken(privilegeKey string... method VerifyPing (line 325) | func (auth *OidcAuthConsumer) VerifyPing(pingMsg *msg.Ping) (err error) { method VerifyNewWorkConn (line 333) | func (auth *OidcAuthConsumer) VerifyNewWorkConn(newWorkConnMsg *msg.Ne... function NewTokenVerifier (line 276) | func NewTokenVerifier(cfg v1.AuthOIDCServerConfig) TokenVerifier { function NewOidcAuthVerifier (line 290) | func NewOidcAuthVerifier(additionalAuthScopes []v1.AuthScope, verifier T... FILE: pkg/auth/oidc_test.go type mockTokenVerifier (line 20) | type mockTokenVerifier struct method Verify (line 22) | func (m *mockTokenVerifier) Verify(ctx context.Context, subject string... function TestPingWithEmptySubjectFromLoginFails (line 28) | func TestPingWithEmptySubjectFromLoginFails(t *testing.T) { function TestPingAfterLoginWithNewSubjectSucceeds (line 39) | func TestPingAfterLoginWithNewSubjectSucceeds(t *testing.T) { function TestPingAfterLoginWithDifferentSubjectFails (line 54) | func TestPingAfterLoginWithDifferentSubjectFails(t *testing.T) { function TestOidcAuthProviderFallsBackWhenNoExpiry (line 70) | func TestOidcAuthProviderFallsBackWhenNoExpiry(t *testing.T) { function TestOidcAuthProviderCachesToken (line 114) | func TestOidcAuthProviderCachesToken(t *testing.T) { function TestOidcAuthProviderRetriesOnInitialFailure (line 159) | func TestOidcAuthProviderRetriesOnInitialFailure(t *testing.T) { function TestNewOidcAuthSetterRejectsInvalidStaticConfig (line 217) | func TestNewOidcAuthSetterRejectsInvalidStaticConfig(t *testing.T) { FILE: pkg/auth/pass.go type alwaysPass (line 25) | type alwaysPass struct method VerifyLogin (line 27) | func (*alwaysPass) VerifyLogin(*msg.Login) error { return nil } method VerifyPing (line 29) | func (*alwaysPass) VerifyPing(*msg.Ping) error { return nil } method VerifyNewWorkConn (line 31) | func (*alwaysPass) VerifyNewWorkConn(*msg.NewWorkConn) error { return ... FILE: pkg/auth/token.go type TokenAuthSetterVerifier (line 27) | type TokenAuthSetterVerifier struct method SetLogin (line 39) | func (auth *TokenAuthSetterVerifier) SetLogin(loginMsg *msg.Login) err... method SetPing (line 44) | func (auth *TokenAuthSetterVerifier) SetPing(pingMsg *msg.Ping) error { method SetNewWorkConn (line 54) | func (auth *TokenAuthSetterVerifier) SetNewWorkConn(newWorkConnMsg *ms... method VerifyLogin (line 64) | func (auth *TokenAuthSetterVerifier) VerifyLogin(m *msg.Login) error { method VerifyPing (line 71) | func (auth *TokenAuthSetterVerifier) VerifyPing(m *msg.Ping) error { method VerifyNewWorkConn (line 82) | func (auth *TokenAuthSetterVerifier) VerifyNewWorkConn(m *msg.NewWorkC... function NewTokenAuth (line 32) | func NewTokenAuth(additionalAuthScopes []v1.AuthScope, token string) *To... FILE: pkg/config/flags.go function WordSepNormalizeFunc (line 31) | func WordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.Normalize... type RegisterFlagOption (line 38) | type RegisterFlagOption type registerFlagOptions (line 40) | type registerFlagOptions struct function WithSSHMode (line 44) | func WithSSHMode() RegisterFlagOption { type BandwidthQuantityFlag (line 50) | type BandwidthQuantityFlag struct method Set (line 54) | func (f *BandwidthQuantityFlag) Set(s string) error { method String (line 58) | func (f *BandwidthQuantityFlag) String() string { method Type (line 62) | func (f *BandwidthQuantityFlag) Type() string { function RegisterProxyFlags (line 66) | func RegisterProxyFlags(cmd *cobra.Command, c v1.ProxyConfigurer, opts .... function registerProxyBaseConfigFlags (line 99) | func registerProxyBaseConfigFlags(cmd *cobra.Command, c *v1.ProxyBaseCon... function registerProxyDomainConfigFlags (line 122) | func registerProxyDomainConfigFlags(cmd *cobra.Command, c *v1.DomainConf... function RegisterVisitorFlags (line 130) | func RegisterVisitorFlags(cmd *cobra.Command, c v1.VisitorConfigurer, op... function registerVisitorBaseConfigFlags (line 136) | func registerVisitorBaseConfigFlags(cmd *cobra.Command, c *v1.VisitorBas... function RegisterClientCommonConfigFlags (line 150) | func RegisterClientCommonConfigFlags(cmd *cobra.Command, c *v1.ClientCom... type PortsRangeSliceFlag (line 174) | type PortsRangeSliceFlag struct method String (line 178) | func (f *PortsRangeSliceFlag) String() string { method Set (line 185) | func (f *PortsRangeSliceFlag) Set(s string) error { method Type (line 194) | func (f *PortsRangeSliceFlag) Type() string { type BoolFuncFlag (line 198) | type BoolFuncFlag struct method String (line 205) | func (f *BoolFuncFlag) String() string { method Set (line 209) | func (f *BoolFuncFlag) Set(s string) error { method Type (line 225) | func (f *BoolFuncFlag) Type() string { function RegisterServerConfigFlags (line 229) | func RegisterServerConfigFlags(cmd *cobra.Command, c *v1.ServerConfig, o... FILE: pkg/config/legacy/client.go type ClientCommonConf (line 34) | type ClientCommonConf struct method Validate (line 362) | func (cfg *ClientCommonConf) Validate() error { function UnmarshalClientConfFromIni (line 173) | func UnmarshalClientConfFromIni(source any) (ClientCommonConf, error) { function LoadAllProxyConfsFromIni (line 204) | func LoadAllProxyConfsFromIni( function renderRangeProxyTemplates (line 289) | func renderRangeProxyTemplates(f *ini.File, section *ini.Section) error { function copySection (line 338) | func copySection(source, target *ini.Section) { function GetDefaultClientConf (line 348) | func GetDefaultClientConf() ClientCommonConf { FILE: pkg/config/legacy/conversion.go function Convert_ClientCommonConf_To_v1 (line 26) | func Convert_ClientCommonConf_To_v1(conf *ClientCommonConf) *v1.ClientCo... function Convert_ServerCommonConf_To_v1 (line 88) | func Convert_ServerCommonConf_To_v1(conf *ServerCommonConf) *v1.ServerCo... function transformHeadersFromPluginParams (line 171) | func transformHeadersFromPluginParams(params map[string]string) v1.Heade... function Convert_ProxyConf_To_v1_Base (line 186) | func Convert_ProxyConf_To_v1_Base(conf ProxyConf) *v1.ProxyBaseConfig { function Convert_ProxyConf_To_v1 (line 261) | func Convert_ProxyConf_To_v1(conf ProxyConf) v1.ProxyConfigurer { function Convert_VisitorConf_To_v1_Base (line 317) | func Convert_VisitorConf_To_v1_Base(conf VisitorConf) *v1.VisitorBaseCon... function Convert_VisitorConf_To_v1 (line 333) | func Convert_VisitorConf_To_v1(conf VisitorConf) v1.VisitorConfigurer { FILE: pkg/config/legacy/parse.go function ParseClientConfig (line 24) | func ParseClientConfig(filePath string) ( function getIncludeContents (line 68) | func getIncludeContents(paths []string) ([]byte, error) { FILE: pkg/config/legacy/proxy.go type ProxyType (line 26) | type ProxyType constant ProxyTypeTCP (line 29) | ProxyTypeTCP ProxyType = "tcp" constant ProxyTypeUDP (line 30) | ProxyTypeUDP ProxyType = "udp" constant ProxyTypeTCPMUX (line 31) | ProxyTypeTCPMUX ProxyType = "tcpmux" constant ProxyTypeHTTP (line 32) | ProxyTypeHTTP ProxyType = "http" constant ProxyTypeHTTPS (line 33) | ProxyTypeHTTPS ProxyType = "https" constant ProxyTypeSTCP (line 34) | ProxyTypeSTCP ProxyType = "stcp" constant ProxyTypeXTCP (line 35) | ProxyTypeXTCP ProxyType = "xtcp" constant ProxyTypeSUDP (line 36) | ProxyTypeSUDP ProxyType = "sudp" type ProxyConf (line 53) | type ProxyConf interface function NewConfByType (line 61) | func NewConfByType(proxyType ProxyType) ProxyConf { function DefaultProxyConf (line 73) | func DefaultProxyConf(proxyType ProxyType) ProxyConf { function NewProxyConfFromIni (line 78) | func NewProxyConfFromIni(prefix, name string, section *ini.Section) (Pro... type LocalSvrConf (line 98) | type LocalSvrConf struct type HealthCheckConf (line 115) | type HealthCheckConf struct type BaseProxyConf (line 146) | type BaseProxyConf struct method GetBaseConfig (line 190) | func (cfg *BaseProxyConf) GetBaseConfig() *BaseProxyConf { method decorate (line 195) | func (cfg *BaseProxyConf) decorate(_ string, name string, section *ini... type DomainConf (line 213) | type DomainConf struct type RoleServerCommonConf (line 218) | type RoleServerCommonConf struct type HTTPProxyConf (line 225) | type HTTPProxyConf struct method UnmarshalFromIni (line 237) | func (cfg *HTTPProxyConf) UnmarshalFromIni(prefix string, name string,... type HTTPSProxyConf (line 249) | type HTTPSProxyConf struct method UnmarshalFromIni (line 254) | func (cfg *HTTPSProxyConf) UnmarshalFromIni(prefix string, name string... type TCPProxyConf (line 265) | type TCPProxyConf struct method UnmarshalFromIni (line 270) | func (cfg *TCPProxyConf) UnmarshalFromIni(prefix string, name string, ... type UDPProxyConf (line 282) | type UDPProxyConf struct method UnmarshalFromIni (line 288) | func (cfg *UDPProxyConf) UnmarshalFromIni(prefix string, name string, ... type TCPMuxProxyConf (line 300) | type TCPMuxProxyConf struct method UnmarshalFromIni (line 310) | func (cfg *TCPMuxProxyConf) UnmarshalFromIni(prefix string, name strin... type STCPProxyConf (line 322) | type STCPProxyConf struct method UnmarshalFromIni (line 327) | func (cfg *STCPProxyConf) UnmarshalFromIni(prefix string, name string,... type XTCPProxyConf (line 341) | type XTCPProxyConf struct method UnmarshalFromIni (line 346) | func (cfg *XTCPProxyConf) UnmarshalFromIni(prefix string, name string,... type SUDPProxyConf (line 360) | type SUDPProxyConf struct method UnmarshalFromIni (line 365) | func (cfg *SUDPProxyConf) UnmarshalFromIni(prefix string, name string,... function preUnmarshalFromIni (line 375) | func preUnmarshalFromIni(cfg ProxyConf, prefix string, name string, sect... FILE: pkg/config/legacy/server.go type HTTPPluginOptions (line 25) | type HTTPPluginOptions struct type ServerCommonConf (line 36) | type ServerCommonConf struct function GetDefaultServerConf (line 207) | func GetDefaultServerConf() ServerCommonConf { function UnmarshalServerConfFromIni (line 220) | func UnmarshalServerConfFromIni(source any) (ServerCommonConf, error) { function loadHTTPPluginOpt (line 269) | func loadHTTPPluginOpt(section *ini.Section) (*HTTPPluginOptions, error) { FILE: pkg/config/legacy/utils.go function GetMapWithoutPrefix (line 21) | func GetMapWithoutPrefix(set map[string]string, prefix string) map[strin... function GetMapByPrefix (line 37) | func GetMapByPrefix(set map[string]string, prefix string) map[string]str... FILE: pkg/config/legacy/value.go function init (line 26) | func init() { type Values (line 38) | type Values struct function GetValues (line 42) | func GetValues() *Values { function RenderContent (line 48) | func RenderContent(in []byte) (out []byte, err error) { function GetRenderedConfFromFile (line 65) | func GetRenderedConfFromFile(path string) (out []byte, err error) { FILE: pkg/config/legacy/visitor.go type VisitorType (line 24) | type VisitorType constant VisitorTypeSTCP (line 27) | VisitorTypeSTCP VisitorType = "stcp" constant VisitorTypeXTCP (line 28) | VisitorTypeXTCP VisitorType = "xtcp" constant VisitorTypeSUDP (line 29) | VisitorTypeSUDP VisitorType = "sudp" type VisitorConf (line 41) | type VisitorConf interface function DefaultVisitorConf (line 50) | func DefaultVisitorConf(visitorType VisitorType) VisitorConf { type BaseVisitorConf (line 58) | type BaseVisitorConf struct method GetBaseConfig (line 76) | func (cfg *BaseVisitorConf) GetBaseConfig() *BaseVisitorConf { method unmarshalFromIni (line 80) | func (cfg *BaseVisitorConf) unmarshalFromIni(_ string, name string, _ ... function preVisitorUnmarshalFromIni (line 91) | func preVisitorUnmarshalFromIni(cfg VisitorConf, prefix string, name str... type SUDPVisitorConf (line 104) | type SUDPVisitorConf struct method UnmarshalFromIni (line 108) | func (cfg *SUDPVisitorConf) UnmarshalFromIni(prefix string, name strin... type STCPVisitorConf (line 119) | type STCPVisitorConf struct method UnmarshalFromIni (line 123) | func (cfg *STCPVisitorConf) UnmarshalFromIni(prefix string, name strin... type XTCPVisitorConf (line 134) | type XTCPVisitorConf struct method UnmarshalFromIni (line 145) | func (cfg *XTCPVisitorConf) UnmarshalFromIni(prefix string, name strin... function NewVisitorConfFromIni (line 168) | func NewVisitorConfFromIni(prefix string, name string, section *ini.Sect... FILE: pkg/config/load.go function init (line 43) | func init() { type Values (line 55) | type Values struct function GetValues (line 59) | func GetValues() *Values { function DetectLegacyINIFormat (line 65) | func DetectLegacyINIFormat(content []byte) bool { function DetectLegacyINIFormatFromFile (line 76) | func DetectLegacyINIFormatFromFile(path string) bool { function RenderWithTemplate (line 84) | func RenderWithTemplate(in []byte, values *Values) ([]byte, error) { function LoadFileContentWithTemplate (line 100) | func LoadFileContentWithTemplate(path string, values *Values) ([]byte, e... function LoadConfigureFromFile (line 108) | func LoadConfigureFromFile(path string, c any, strict bool) error { function detectFormatFromPath (line 117) | func detectFormatFromPath(path string) string { function parseYAMLWithDotFieldsHandling (line 132) | func parseYAMLWithDotFieldsHandling(content []byte, target any) error { function decodeJSONContent (line 155) | func decodeJSONContent(content []byte, target any, strict bool) error { function LoadConfigure (line 176) | func LoadConfigure(b []byte, c any, strict bool, formats ...string) error { function formatTOMLError (line 220) | func formatTOMLError(err error) error { function enhanceDecodeError (line 234) | func enhanceDecodeError(err error, originalContent []byte, includeLine b... function findFieldLineInContent (line 250) | func findFieldLineInContent(content []byte, fieldPath string) int { function NewProxyConfigurerFromMsg (line 278) | func NewProxyConfigurerFromMsg(m *msg.NewProxy, serverCfg *v1.ServerConf... function LoadServerConfig (line 295) | func LoadServerConfig(path string, strict bool) (*v1.ServerConfig, bool,... type ClientConfigLoadResult (line 327) | type ClientConfigLoadResult struct function LoadClientConfigResult (line 346) | func LoadClientConfigResult(path string, strict bool) (*ClientConfigLoad... function LoadClientConfig (line 400) | func LoadClientConfig(path string, strict bool) ( function CompleteProxyConfigurers (line 420) | func CompleteProxyConfigurers(proxies []v1.ProxyConfigurer) []v1.ProxyCo... function CompleteVisitorConfigurers (line 428) | func CompleteVisitorConfigurers(visitors []v1.VisitorConfigurer) []v1.Vi... function FilterClientConfigurers (line 436) | func FilterClientConfigurers( function LoadAdditionalClientConfigs (line 473) | func LoadAdditionalClientConfigs(paths []string, isLegacyFormat bool, st... FILE: pkg/config/load_test.go constant tomlServerContent (line 28) | tomlServerContent = ` constant yamlServerContent (line 37) | yamlServerContent = ` constant jsonServerContent (line 47) | jsonServerContent = ` function TestLoadServerConfig (line 60) | func TestLoadServerConfig(t *testing.T) { function TestLoadServerConfigStrictMode (line 86) | func TestLoadServerConfigStrictMode(t *testing.T) { function TestRenderWithTemplate (line 116) | func TestRenderWithTemplate(t *testing.T) { function TestCustomStructStrictMode (line 139) | func TestCustomStructStrictMode(t *testing.T) { function TestLoadClientConfigStrictMode_UnknownPluginField (line 192) | func TestLoadClientConfigStrictMode_UnknownPluginField(t *testing.T) { function TestYAMLMergeInStrictMode (line 219) | func TestYAMLMergeInStrictMode(t *testing.T) { function TestOptimizedYAMLProcessing (line 265) | func TestOptimizedYAMLProcessing(t *testing.T) { function TestFilterClientConfigurers_PreserveRawNamesAndNoMutation (line 302) | func TestFilterClientConfigurers_PreserveRawNamesAndNoMutation(t *testin... function TestCompleteProxyConfigurers_PreserveRawNames (line 343) | func TestCompleteProxyConfigurers_PreserveRawNames(t *testing.T) { function TestCompleteVisitorConfigurers_PreserveRawNames (line 361) | func TestCompleteVisitorConfigurers_PreserveRawNames(t *testing.T) { function TestCompleteProxyConfigurers_Idempotent (line 387) | func TestCompleteProxyConfigurers_Idempotent(t *testing.T) { function TestCompleteVisitorConfigurers_Idempotent (line 406) | func TestCompleteVisitorConfigurers_Idempotent(t *testing.T) { function TestFilterClientConfigurers_FilterByStartAndEnabled (line 427) | func TestFilterClientConfigurers_FilterByStartAndEnabled(t *testing.T) { function TestYAMLEdgeCases (line 466) | func TestYAMLEdgeCases(t *testing.T) { function TestTOMLSyntaxErrorWithPosition (line 499) | func TestTOMLSyntaxErrorWithPosition(t *testing.T) { function TestTOMLTypeMismatchErrorWithFieldInfo (line 518) | func TestTOMLTypeMismatchErrorWithFieldInfo(t *testing.T) { function TestFindFieldLineInContent (line 536) | func TestFindFieldLineInContent(t *testing.T) { function TestFormatDetection (line 566) | func TestFormatDetection(t *testing.T) { function TestValidTOMLStillWorks (line 587) | func TestValidTOMLStillWorks(t *testing.T) { FILE: pkg/config/source/aggregator.go type Aggregator (line 28) | type Aggregator struct method SetStoreSource (line 44) | func (a *Aggregator) SetStoreSource(storeSource *StoreSource) { method ConfigSource (line 51) | func (a *Aggregator) ConfigSource() *ConfigSource { method StoreSource (line 55) | func (a *Aggregator) StoreSource() *StoreSource { method getSourcesLocked (line 59) | func (a *Aggregator) getSourcesLocked() []Source { method Load (line 70) | func (a *Aggregator) Load() ([]v1.ProxyConfigurer, []v1.VisitorConfigu... method mapsToSortedSlices (line 98) | func (a *Aggregator) mapsToSortedSlices( function NewAggregator (line 35) | func NewAggregator(configSource *ConfigSource) *Aggregator { FILE: pkg/config/source/aggregator_test.go function mockProxy (line 27) | func mockProxy(name string) v1.ProxyConfigurer { function mockVisitor (line 37) | func mockVisitor(name string) v1.VisitorConfigurer { function newTestStoreSource (line 45) | func newTestStoreSource(t *testing.T) *StoreSource { function newTestAggregator (line 54) | func newTestAggregator(t *testing.T, storeSource *StoreSource) *Aggregat... function TestNewAggregator_CreatesConfigSourceWhenNil (line 65) | func TestNewAggregator_CreatesConfigSourceWhenNil(t *testing.T) { function TestNewAggregator_WithoutStore (line 74) | func TestNewAggregator_WithoutStore(t *testing.T) { function TestNewAggregator_WithStore (line 84) | func TestNewAggregator_WithStore(t *testing.T) { function TestAggregator_SetStoreSource_Overwrite (line 96) | func TestAggregator_SetStoreSource_Overwrite(t *testing.T) { function TestAggregator_MergeBySourceOrder (line 113) | func TestAggregator_MergeBySourceOrder(t *testing.T) { function TestAggregator_DisabledEntryIsSourceLocalFilter (line 154) | func TestAggregator_DisabledEntryIsSourceLocalFilter(t *testing.T) { function TestAggregator_VisitorMerge (line 183) | func TestAggregator_VisitorMerge(t *testing.T) { function TestAggregator_Load_ReturnsSortedByName (line 199) | func TestAggregator_Load_ReturnsSortedByName(t *testing.T) { function TestAggregator_Load_ReturnsDefensiveCopies (line 220) | func TestAggregator_Load_ReturnsDefensiveCopies(t *testing.T) { FILE: pkg/config/source/base_source.go type baseSource (line 26) | type baseSource struct method Load (line 42) | func (s *baseSource) Load() ([]v1.ProxyConfigurer, []v1.VisitorConfigu... function newBaseSource (line 33) | func newBaseSource() baseSource { FILE: pkg/config/source/base_source_test.go function TestBaseSourceLoadReturnsClonedConfigurers (line 11) | func TestBaseSourceLoadReturnsClonedConfigurers(t *testing.T) { FILE: pkg/config/source/clone.go function cloneConfigurers (line 23) | func cloneConfigurers( FILE: pkg/config/source/config_source.go type ConfigSource (line 25) | type ConfigSource struct method ReplaceAll (line 36) | func (s *ConfigSource) ReplaceAll(proxies []v1.ProxyConfigurer, visito... function NewConfigSource (line 29) | func NewConfigSource() *ConfigSource { FILE: pkg/config/source/config_source_test.go function TestNewConfigSource (line 25) | func TestNewConfigSource(t *testing.T) { function TestConfigSource_ReplaceAll (line 32) | func TestConfigSource_ReplaceAll(t *testing.T) { function TestConfigSource_Load (line 70) | func TestConfigSource_Load(t *testing.T) { function TestConfigSource_Load_FiltersDisabled (line 89) | func TestConfigSource_Load_FiltersDisabled(t *testing.T) { function TestConfigSource_ReplaceAll_DoesNotApplyRuntimeDefaults (line 146) | func TestConfigSource_ReplaceAll_DoesNotApplyRuntimeDefaults(t *testing.... FILE: pkg/config/source/source.go type Source (line 25) | type Source interface FILE: pkg/config/source/store.go type StoreSourceConfig (line 27) | type StoreSourceConfig struct type storeData (line 31) | type storeData struct type StoreSource (line 36) | type StoreSource struct method loadFromFile (line 65) | func (s *StoreSource) loadFromFile() error { method loadFromFileUnlocked (line 71) | func (s *StoreSource) loadFromFileUnlocked() error { method saveToFileUnlocked (line 120) | func (s *StoreSource) saveToFileUnlocked() error { method AddProxy (line 175) | func (s *StoreSource) AddProxy(proxy v1.ProxyConfigurer) error { method UpdateProxy (line 201) | func (s *StoreSource) UpdateProxy(proxy v1.ProxyConfigurer) error { method RemoveProxy (line 228) | func (s *StoreSource) RemoveProxy(name string) error { method GetProxy (line 250) | func (s *StoreSource) GetProxy(name string) v1.ProxyConfigurer { method AddVisitor (line 261) | func (s *StoreSource) AddVisitor(visitor v1.VisitorConfigurer) error { method UpdateVisitor (line 287) | func (s *StoreSource) UpdateVisitor(visitor v1.VisitorConfigurer) error { method RemoveVisitor (line 314) | func (s *StoreSource) RemoveVisitor(name string) error { method GetVisitor (line 336) | func (s *StoreSource) GetVisitor(name string) v1.VisitorConfigurer { method GetAllProxies (line 347) | func (s *StoreSource) GetAllProxies() ([]v1.ProxyConfigurer, error) { method GetAllVisitors (line 358) | func (s *StoreSource) GetAllVisitors() ([]v1.VisitorConfigurer, error) { function NewStoreSource (line 46) | func NewStoreSource(cfg StoreSourceConfig) (*StoreSource, error) { FILE: pkg/config/source/store_test.go function TestStoreSource_AddProxyAndVisitor_DoesNotApplyRuntimeDefaults (line 28) | func TestStoreSource_AddProxyAndVisitor_DoesNotApplyRuntimeDefaults(t *t... function TestStoreSource_LoadFromFile_DoesNotApplyRuntimeDefaults (line 62) | func TestStoreSource_LoadFromFile_DoesNotApplyRuntimeDefaults(t *testing... function TestStoreSource_LoadFromFile_UnknownFieldsAreIgnored (line 101) | func TestStoreSource_LoadFromFile_UnknownFieldsAreIgnored(t *testing.T) { FILE: pkg/config/template.go type NumberPair (line 23) | type NumberPair struct function parseNumberRangePair (line 28) | func parseNumberRangePair(firstRangeStr, secondRangeStr string) ([]Numbe... function parseNumberRange (line 50) | func parseNumberRange(firstRangeStr string) ([]int64, error) { FILE: pkg/config/types/types.go constant MB (line 26) | MB = 1024 * 1024 constant KB (line 27) | KB = 1024 constant BandwidthLimitModeClient (line 29) | BandwidthLimitModeClient = "client" constant BandwidthLimitModeServer (line 30) | BandwidthLimitModeServer = "server" type BandwidthQuantity (line 33) | type BandwidthQuantity struct method Equal (line 48) | func (q *BandwidthQuantity) Equal(u *BandwidthQuantity) bool { method String (line 58) | func (q *BandwidthQuantity) String() string { method UnmarshalString (line 62) | func (q *BandwidthQuantity) UnmarshalString(s string) error { method UnmarshalJSON (line 91) | func (q *BandwidthQuantity) UnmarshalJSON(b []byte) error { method MarshalJSON (line 105) | func (q *BandwidthQuantity) MarshalJSON() ([]byte, error) { method Bytes (line 109) | func (q *BandwidthQuantity) Bytes() int64 { function NewBandwidthQuantity (line 39) | func NewBandwidthQuantity(s string) (BandwidthQuantity, error) { type PortsRange (line 113) | type PortsRange struct type PortsRangeSlice (line 119) | type PortsRangeSlice method String (line 121) | func (p PortsRangeSlice) String() string { function NewPortsRangeSliceFromString (line 137) | func NewPortsRangeSliceFromString(str string) ([]PortsRange, error) { FILE: pkg/config/types/types_test.go type Wrap (line 24) | type Wrap struct function TestBandwidthQuantity (line 29) | func TestBandwidthQuantity(t *testing.T) { function TestBandwidthQuantity_MB (line 42) | func TestBandwidthQuantity_MB(t *testing.T) { function TestBandwidthQuantity_InvalidUnit (line 55) | func TestBandwidthQuantity_InvalidUnit(t *testing.T) { function TestBandwidthQuantity_InvalidNumber (line 61) | func TestBandwidthQuantity_InvalidNumber(t *testing.T) { function TestPortsRangeSlice2String (line 67) | func TestPortsRangeSlice2String(t *testing.T) { function TestNewPortsRangeSliceFromString (line 83) | func TestNewPortsRangeSliceFromString(t *testing.T) { FILE: pkg/config/v1/api.go type APIMetadata (line 17) | type APIMetadata struct FILE: pkg/config/v1/client.go type ClientConfig (line 25) | type ClientConfig struct type ClientCommonConfig (line 32) | type ClientCommonConfig struct method Complete (line 85) | func (c *ClientCommonConfig) Complete() error { type ClientTransportConfig (line 102) | type ClientTransportConfig struct method Complete (line 144) | func (c *ClientTransportConfig) Complete() { type TLSClientConfig (line 164) | type TLSClientConfig struct method Complete (line 178) | func (c *TLSClientConfig) Complete() { type AuthClientConfig (line 183) | type AuthClientConfig struct method Complete (line 202) | func (c *AuthClientConfig) Complete() error { type AuthOIDCClientConfig (line 207) | type AuthOIDCClientConfig struct type VirtualNetConfig (line 240) | type VirtualNetConfig struct FILE: pkg/config/v1/client_test.go function TestClientConfigComplete (line 24) | func TestClientConfigComplete(t *testing.T) { function TestAuthClientConfig_Complete (line 38) | func TestAuthClientConfig_Complete(t *testing.T) { FILE: pkg/config/v1/clone_test.go function TestProxyCloneDeepCopy (line 9) | func TestProxyCloneDeepCopy(t *testing.T) { function TestVisitorCloneDeepCopy (line 75) | func TestVisitorCloneDeepCopy(t *testing.T) { FILE: pkg/config/v1/common.go type AuthScope (line 23) | type AuthScope constant AuthScopeHeartBeats (line 26) | AuthScopeHeartBeats AuthScope = "HeartBeats" constant AuthScopeNewWorkConns (line 27) | AuthScopeNewWorkConns AuthScope = "NewWorkConns" type AuthMethod (line 30) | type AuthMethod constant AuthMethodToken (line 33) | AuthMethodToken AuthMethod = "token" constant AuthMethodOIDC (line 34) | AuthMethodOIDC AuthMethod = "oidc" type QUICOptions (line 38) | type QUICOptions struct method Complete (line 44) | func (c *QUICOptions) Complete() { type WebServerConfig (line 50) | type WebServerConfig struct method Complete (line 71) | func (c *WebServerConfig) Complete() { type TLSConfig (line 75) | type TLSConfig struct type NatTraversalConfig (line 88) | type NatTraversalConfig struct method Clone (line 95) | func (c *NatTraversalConfig) Clone() *NatTraversalConfig { type LogConfig (line 103) | type LogConfig struct method Complete (line 119) | func (c *LogConfig) Complete() { type HTTPPluginOptions (line 125) | type HTTPPluginOptions struct type HeaderOperations (line 133) | type HeaderOperations struct method Clone (line 137) | func (o HeaderOperations) Clone() HeaderOperations { type HTTPHeader (line 143) | type HTTPHeader struct FILE: pkg/config/v1/decode.go type DecodeOptions (line 25) | type DecodeOptions struct function decodeJSONWithOptions (line 29) | func decodeJSONWithOptions(b []byte, out any, options DecodeOptions) err... function isJSONNull (line 35) | func isJSONNull(b []byte) bool { type typedEnvelope (line 39) | type typedEnvelope struct function DecodeProxyConfigurerJSON (line 44) | func DecodeProxyConfigurerJSON(b []byte, options DecodeOptions) (ProxyCo... function DecodeVisitorConfigurerJSON (line 72) | func DecodeVisitorConfigurerJSON(b []byte, options DecodeOptions) (Visit... function DecodeClientPluginOptionsJSON (line 100) | func DecodeClientPluginOptionsJSON(b []byte, options DecodeOptions) (Typ... function DecodeVisitorPluginOptionsJSON (line 127) | func DecodeVisitorPluginOptionsJSON(b []byte, options DecodeOptions) (Ty... function DecodeClientConfigJSON (line 154) | func DecodeClientConfigJSON(b []byte, options DecodeOptions) (ClientConf... FILE: pkg/config/v1/decode_test.go function TestDecodeProxyConfigurerJSON_StrictPluginUnknownFields (line 23) | func TestDecodeProxyConfigurerJSON_StrictPluginUnknownFields(t *testing.... function TestDecodeVisitorConfigurerJSON_StrictPluginUnknownFields (line 44) | func TestDecodeVisitorConfigurerJSON_StrictPluginUnknownFields(t *testin... function TestDecodeClientConfigJSON_StrictUnknownProxyField (line 66) | func TestDecodeClientConfigJSON_StrictUnknownProxyField(t *testing.T) { FILE: pkg/config/v1/proxy.go type ProxyTransport (line 28) | type ProxyTransport struct type LoadBalancerConfig (line 49) | type LoadBalancerConfig struct type ProxyBackend (line 59) | type ProxyBackend struct method Clone (line 144) | func (c ProxyBackend) Clone() ProxyBackend { type HealthCheckConfig (line 72) | type HealthCheckConfig struct method Clone (line 102) | func (c HealthCheckConfig) Clone() HealthCheckConfig { type DomainConfig (line 108) | type DomainConfig struct method Clone (line 113) | func (c DomainConfig) Clone() DomainConfig { type ProxyBaseConfig (line 119) | type ProxyBaseConfig struct method Clone (line 134) | func (c ProxyBaseConfig) Clone() ProxyBaseConfig { method GetBaseConfig (line 150) | func (c *ProxyBaseConfig) GetBaseConfig() *ProxyBaseConfig { method Complete (line 154) | func (c *ProxyBaseConfig) Complete() { method MarshalToMsg (line 163) | func (c *ProxyBaseConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 179) | func (c *ProxyBaseConfig) UnmarshalFromMsg(m *msg.NewProxy) { type TypedProxyConfig (line 196) | type TypedProxyConfig struct method UnmarshalJSON (line 201) | func (c *TypedProxyConfig) UnmarshalJSON(b []byte) error { method MarshalJSON (line 212) | func (c *TypedProxyConfig) MarshalJSON() ([]byte, error) { type ProxyConfigurer (line 216) | type ProxyConfigurer interface type ProxyType (line 228) | type ProxyType constant ProxyTypeTCP (line 231) | ProxyTypeTCP ProxyType = "tcp" constant ProxyTypeUDP (line 232) | ProxyTypeUDP ProxyType = "udp" constant ProxyTypeTCPMUX (line 233) | ProxyTypeTCPMUX ProxyType = "tcpmux" constant ProxyTypeHTTP (line 234) | ProxyTypeHTTP ProxyType = "http" constant ProxyTypeHTTPS (line 235) | ProxyTypeHTTPS ProxyType = "https" constant ProxyTypeSTCP (line 236) | ProxyTypeSTCP ProxyType = "stcp" constant ProxyTypeXTCP (line 237) | ProxyTypeXTCP ProxyType = "xtcp" constant ProxyTypeSUDP (line 238) | ProxyTypeSUDP ProxyType = "sudp" function NewProxyConfigurerByType (line 252) | func NewProxyConfigurerByType(proxyType ProxyType) ProxyConfigurer { type TCPProxyConfig (line 264) | type TCPProxyConfig struct method MarshalToMsg (line 270) | func (c *TCPProxyConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 276) | func (c *TCPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { method Clone (line 282) | func (c *TCPProxyConfig) Clone() ProxyConfigurer { type UDPProxyConfig (line 290) | type UDPProxyConfig struct method MarshalToMsg (line 296) | func (c *UDPProxyConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 302) | func (c *UDPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { method Clone (line 308) | func (c *UDPProxyConfig) Clone() ProxyConfigurer { type HTTPProxyConfig (line 316) | type HTTPProxyConfig struct method MarshalToMsg (line 329) | func (c *HTTPProxyConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 343) | func (c *HTTPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { method Clone (line 357) | func (c *HTTPProxyConfig) Clone() ProxyConfigurer { type HTTPSProxyConfig (line 369) | type HTTPSProxyConfig struct method MarshalToMsg (line 374) | func (c *HTTPSProxyConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 381) | func (c *HTTPSProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { method Clone (line 388) | func (c *HTTPSProxyConfig) Clone() ProxyConfigurer { type TCPMultiplexerType (line 395) | type TCPMultiplexerType constant TCPMultiplexerHTTPConnect (line 398) | TCPMultiplexerHTTPConnect TCPMultiplexerType = "httpconnect" type TCPMuxProxyConfig (line 403) | type TCPMuxProxyConfig struct method MarshalToMsg (line 413) | func (c *TCPMuxProxyConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 424) | func (c *TCPMuxProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { method Clone (line 435) | func (c *TCPMuxProxyConfig) Clone() ProxyConfigurer { type STCPProxyConfig (line 444) | type STCPProxyConfig struct method MarshalToMsg (line 451) | func (c *STCPProxyConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 458) | func (c *STCPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { method Clone (line 465) | func (c *STCPProxyConfig) Clone() ProxyConfigurer { type XTCPProxyConfig (line 474) | type XTCPProxyConfig struct method MarshalToMsg (line 484) | func (c *XTCPProxyConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 491) | func (c *XTCPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { method Clone (line 498) | func (c *XTCPProxyConfig) Clone() ProxyConfigurer { type SUDPProxyConfig (line 508) | type SUDPProxyConfig struct method MarshalToMsg (line 515) | func (c *SUDPProxyConfig) MarshalToMsg(m *msg.NewProxy) { method UnmarshalFromMsg (line 522) | func (c *SUDPProxyConfig) UnmarshalFromMsg(m *msg.NewProxy) { method Clone (line 529) | func (c *SUDPProxyConfig) Clone() ProxyConfigurer { FILE: pkg/config/v1/proxy_plugin.go constant PluginHTTP2HTTPS (line 27) | PluginHTTP2HTTPS = "http2https" constant PluginHTTPProxy (line 28) | PluginHTTPProxy = "http_proxy" constant PluginHTTPS2HTTP (line 29) | PluginHTTPS2HTTP = "https2http" constant PluginHTTPS2HTTPS (line 30) | PluginHTTPS2HTTPS = "https2https" constant PluginHTTP2HTTP (line 31) | PluginHTTP2HTTP = "http2http" constant PluginSocks5 (line 32) | PluginSocks5 = "socks5" constant PluginStaticFile (line 33) | PluginStaticFile = "static_file" constant PluginUnixDomainSocket (line 34) | PluginUnixDomainSocket = "unix_domain_socket" constant PluginTLS2Raw (line 35) | PluginTLS2Raw = "tls2raw" constant PluginVirtualNet (line 36) | PluginVirtualNet = "virtual_net" type ClientPluginOptions (line 52) | type ClientPluginOptions interface type TypedClientPluginOptions (line 57) | type TypedClientPluginOptions struct method Clone (line 62) | func (c TypedClientPluginOptions) Clone() TypedClientPluginOptions { method UnmarshalJSON (line 70) | func (c *TypedClientPluginOptions) UnmarshalJSON(b []byte) error { method MarshalJSON (line 79) | func (c *TypedClientPluginOptions) MarshalJSON() ([]byte, error) { type HTTP2HTTPSPluginOptions (line 83) | type HTTP2HTTPSPluginOptions struct method Complete (line 90) | func (o *HTTP2HTTPSPluginOptions) Complete() {} method Clone (line 92) | func (o *HTTP2HTTPSPluginOptions) Clone() ClientPluginOptions { type HTTPProxyPluginOptions (line 101) | type HTTPProxyPluginOptions struct method Complete (line 107) | func (o *HTTPProxyPluginOptions) Complete() {} method Clone (line 109) | func (o *HTTPProxyPluginOptions) Clone() ClientPluginOptions { type HTTPS2HTTPPluginOptions (line 117) | type HTTPS2HTTPPluginOptions struct method Complete (line 127) | func (o *HTTPS2HTTPPluginOptions) Complete() { method Clone (line 131) | func (o *HTTPS2HTTPPluginOptions) Clone() ClientPluginOptions { type HTTPS2HTTPSPluginOptions (line 141) | type HTTPS2HTTPSPluginOptions struct method Complete (line 151) | func (o *HTTPS2HTTPSPluginOptions) Complete() { method Clone (line 155) | func (o *HTTPS2HTTPSPluginOptions) Clone() ClientPluginOptions { type HTTP2HTTPPluginOptions (line 165) | type HTTP2HTTPPluginOptions struct method Complete (line 172) | func (o *HTTP2HTTPPluginOptions) Complete() {} method Clone (line 174) | func (o *HTTP2HTTPPluginOptions) Clone() ClientPluginOptions { type Socks5PluginOptions (line 183) | type Socks5PluginOptions struct method Complete (line 189) | func (o *Socks5PluginOptions) Complete() {} method Clone (line 191) | func (o *Socks5PluginOptions) Clone() ClientPluginOptions { type StaticFilePluginOptions (line 199) | type StaticFilePluginOptions struct method Complete (line 207) | func (o *StaticFilePluginOptions) Complete() {} method Clone (line 209) | func (o *StaticFilePluginOptions) Clone() ClientPluginOptions { type UnixDomainSocketPluginOptions (line 217) | type UnixDomainSocketPluginOptions struct method Complete (line 222) | func (o *UnixDomainSocketPluginOptions) Complete() {} method Clone (line 224) | func (o *UnixDomainSocketPluginOptions) Clone() ClientPluginOptions { type TLS2RawPluginOptions (line 232) | type TLS2RawPluginOptions struct method Complete (line 239) | func (o *TLS2RawPluginOptions) Complete() {} method Clone (line 241) | func (o *TLS2RawPluginOptions) Clone() ClientPluginOptions { type VirtualNetPluginOptions (line 249) | type VirtualNetPluginOptions struct method Complete (line 253) | func (o *VirtualNetPluginOptions) Complete() {} method Clone (line 255) | func (o *VirtualNetPluginOptions) Clone() ClientPluginOptions { FILE: pkg/config/v1/proxy_test.go function TestUnmarshalTypedProxyConfig (line 24) | func TestUnmarshalTypedProxyConfig(t *testing.T) { FILE: pkg/config/v1/server.go type ServerConfig (line 24) | type ServerConfig struct method Complete (line 101) | func (c *ServerConfig) Complete() error { type AuthServerConfig (line 128) | type AuthServerConfig struct method Complete (line 136) | func (c *AuthServerConfig) Complete() error { type AuthOIDCServerConfig (line 141) | type AuthOIDCServerConfig struct type ServerTransportConfig (line 157) | type ServerTransportConfig struct method Complete (line 182) | func (c *ServerTransportConfig) Complete() { type TLSServerConfig (line 199) | type TLSServerConfig struct type SSHTunnelGateway (line 206) | type SSHTunnelGateway struct method Complete (line 213) | func (c *SSHTunnelGateway) Complete() { FILE: pkg/config/v1/server_test.go function TestServerConfigComplete (line 24) | func TestServerConfigComplete(t *testing.T) { function TestAuthServerConfig_Complete (line 35) | func TestAuthServerConfig_Complete(t *testing.T) { FILE: pkg/config/v1/store.go type StoreConfig (line 18) | type StoreConfig struct method IsEnabled (line 24) | func (c *StoreConfig) IsEnabled() bool { FILE: pkg/config/v1/validation/client.go method ValidateClientCommonConfig (line 30) | func (v *ConfigValidator) ValidateClientCommonConfig(c *v1.ClientCommonC... function validateFeatureGates (line 53) | func validateFeatureGates(c *v1.ClientCommonConfig) (Warning, error) { method validateAuthConfig (line 62) | func (v *ConfigValidator) validateAuthConfig(c *v1.AuthClientConfig) (Wa... method validateOIDCConfig (line 99) | func (v *ConfigValidator) validateOIDCConfig(c *v1.AuthOIDCClientConfig)... function validateTransportConfig (line 121) | func validateTransportConfig(c *v1.ClientTransportConfig) (Warning, erro... function validateIncludeFiles (line 152) | func validateIncludeFiles(files []string) (Warning, error) { function ValidateAllClientConfig (line 167) | func ValidateAllClientConfig( FILE: pkg/config/v1/validation/common.go function validateWebServerConfig (line 24) | func validateWebServerConfig(c *v1.WebServerConfig) error { function ValidatePort (line 38) | func ValidatePort(port int, fieldPath string) error { function validateLogConfig (line 45) | func validateLogConfig(c *v1.LogConfig) error { FILE: pkg/config/v1/validation/oidc.go function ValidateOIDCClientCredentialsConfig (line 25) | func ValidateOIDCClientCredentialsConfig(c *v1.AuthOIDCClientConfig) err... FILE: pkg/config/v1/validation/oidc_test.go function TestValidateOIDCClientCredentialsConfig (line 27) | func TestValidateOIDCClientCredentialsConfig(t *testing.T) { FILE: pkg/config/v1/validation/plugin.go function ValidateClientPluginOptions (line 23) | func ValidateClientPluginOptions(c v1.ClientPluginOptions) error { function validateHTTP2HTTPSPluginOptions (line 41) | func validateHTTP2HTTPSPluginOptions(c *v1.HTTP2HTTPSPluginOptions) error { function validateHTTPS2HTTPPluginOptions (line 48) | func validateHTTPS2HTTPPluginOptions(c *v1.HTTPS2HTTPPluginOptions) error { function validateHTTPS2HTTPSPluginOptions (line 55) | func validateHTTPS2HTTPSPluginOptions(c *v1.HTTPS2HTTPSPluginOptions) er... function validateStaticFilePluginOptions (line 62) | func validateStaticFilePluginOptions(c *v1.StaticFilePluginOptions) error { function validateUnixDomainSocketPluginOptions (line 69) | func validateUnixDomainSocketPluginOptions(c *v1.UnixDomainSocketPluginO... function validateTLS2RawPluginOptions (line 76) | func validateTLS2RawPluginOptions(c *v1.TLS2RawPluginOptions) error { FILE: pkg/config/v1/validation/proxy.go function validateProxyBaseConfigForClient (line 28) | func validateProxyBaseConfigForClient(c *v1.ProxyBaseConfig) error { function validateProxyBaseConfigForServer (line 67) | func validateProxyBaseConfigForServer(c *v1.ProxyBaseConfig) error { function validateDomainConfigForClient (line 74) | func validateDomainConfigForClient(c *v1.DomainConfig) error { function validateDomainConfigForServer (line 81) | func validateDomainConfigForServer(c *v1.DomainConfig, s *v1.ServerConfi... function ValidateProxyConfigurerForClient (line 102) | func ValidateProxyConfigurerForClient(c v1.ProxyConfigurer) error { function validateTCPProxyConfigForClient (line 129) | func validateTCPProxyConfigForClient(c *v1.TCPProxyConfig) error { function validateUDPProxyConfigForClient (line 133) | func validateUDPProxyConfigForClient(c *v1.UDPProxyConfig) error { function validateTCPMuxProxyConfigForClient (line 137) | func validateTCPMuxProxyConfigForClient(c *v1.TCPMuxProxyConfig) error { function validateHTTPProxyConfigForClient (line 148) | func validateHTTPProxyConfigForClient(c *v1.HTTPProxyConfig) error { function validateHTTPSProxyConfigForClient (line 152) | func validateHTTPSProxyConfigForClient(c *v1.HTTPSProxyConfig) error { function validateSTCPProxyConfigForClient (line 156) | func validateSTCPProxyConfigForClient(c *v1.STCPProxyConfig) error { function validateXTCPProxyConfigForClient (line 160) | func validateXTCPProxyConfigForClient(c *v1.XTCPProxyConfig) error { function validateSUDPProxyConfigForClient (line 164) | func validateSUDPProxyConfigForClient(c *v1.SUDPProxyConfig) error { function ValidateProxyConfigurerForServer (line 168) | func ValidateProxyConfigurerForServer(c v1.ProxyConfigurer, s *v1.Server... function validateTCPProxyConfigForServer (line 196) | func validateTCPProxyConfigForServer(c *v1.TCPProxyConfig, s *v1.ServerC... function validateUDPProxyConfigForServer (line 200) | func validateUDPProxyConfigForServer(c *v1.UDPProxyConfig, s *v1.ServerC... function validateTCPMuxProxyConfigForServer (line 204) | func validateTCPMuxProxyConfigForServer(c *v1.TCPMuxProxyConfig, s *v1.S... function validateHTTPProxyConfigForServer (line 213) | func validateHTTPProxyConfigForServer(c *v1.HTTPProxyConfig, s *v1.Serve... function validateHTTPSProxyConfigForServer (line 221) | func validateHTTPSProxyConfigForServer(c *v1.HTTPSProxyConfig, s *v1.Ser... function validateSTCPProxyConfigForServer (line 229) | func validateSTCPProxyConfigForServer(c *v1.STCPProxyConfig, s *v1.Serve... function validateXTCPProxyConfigForServer (line 233) | func validateXTCPProxyConfigForServer(c *v1.XTCPProxyConfig, s *v1.Serve... function validateSUDPProxyConfigForServer (line 237) | func validateSUDPProxyConfigForServer(c *v1.SUDPProxyConfig, s *v1.Serve... function ValidateAnnotations (line 242) | func ValidateAnnotations(annotations map[string]string) error { constant TotalAnnotationSizeLimitB (line 259) | TotalAnnotationSizeLimitB int = 256 * (1 << 10) function ValidateAnnotationsSize (line 261) | func ValidateAnnotationsSize(annotations map[string]string) error { FILE: pkg/config/v1/validation/server.go method ValidateServerConfig (line 27) | func (v *ConfigValidator) ValidateServerConfig(c *v1.ServerConfig) (Warn... FILE: pkg/config/v1/validation/validation.go type Warning (line 61) | type Warning function AppendError (line 63) | func AppendError(err error, errs ...error) error { FILE: pkg/config/v1/validation/validator.go type ConfigValidator (line 10) | type ConfigValidator struct method ValidateUnsafeFeature (line 22) | func (v *ConfigValidator) ValidateUnsafeFeature(feature string) error { function NewConfigValidator (line 15) | func NewConfigValidator(unsafeFeatures *security.UnsafeFeatures) *Config... FILE: pkg/config/v1/validation/visitor.go function ValidateVisitorConfigurer (line 25) | func ValidateVisitorConfigurer(c v1.VisitorConfigurer) error { function validateVisitorBaseConfig (line 42) | func validateVisitorBaseConfig(c *v1.VisitorBaseConfig) error { function validateXTCPVisitorConfig (line 57) | func validateXTCPVisitorConfig(c *v1.XTCPVisitorConfig) error { FILE: pkg/config/v1/value_source.go type ValueSource (line 28) | type ValueSource struct method Validate (line 52) | func (v *ValueSource) Validate() error { method Resolve (line 74) | func (v *ValueSource) Resolve(ctx context.Context) (string, error) { type FileSource (line 35) | type FileSource struct method Validate (line 90) | func (f *FileSource) Validate() error { method Resolve (line 102) | func (f *FileSource) Resolve(_ context.Context) (string, error) { type ExecSource (line 40) | type ExecSource struct method Validate (line 117) | func (e *ExecSource) Validate() error { method Resolve (line 138) | func (e *ExecSource) Resolve(ctx context.Context) (string, error) { type ExecEnvVar (line 46) | type ExecEnvVar struct FILE: pkg/config/v1/value_source_test.go function TestValueSource_Validate (line 24) | func TestValueSource_Validate(t *testing.T) { function TestFileSource_Validate (line 82) | func TestFileSource_Validate(t *testing.T) { function TestFileSource_Resolve (line 126) | func TestFileSource_Resolve(t *testing.T) { function TestValueSource_Resolve (line 184) | func TestValueSource_Resolve(t *testing.T) { FILE: pkg/config/v1/visitor.go type VisitorTransport (line 24) | type VisitorTransport struct type VisitorBaseConfig (line 29) | type VisitorBaseConfig struct method Clone (line 50) | func (c VisitorBaseConfig) Clone() VisitorBaseConfig { method GetBaseConfig (line 57) | func (c *VisitorBaseConfig) GetBaseConfig() *VisitorBaseConfig { method Complete (line 61) | func (c *VisitorBaseConfig) Complete() { type VisitorConfigurer (line 67) | type VisitorConfigurer interface type VisitorType (line 73) | type VisitorType constant VisitorTypeSTCP (line 76) | VisitorTypeSTCP VisitorType = "stcp" constant VisitorTypeXTCP (line 77) | VisitorTypeXTCP VisitorType = "xtcp" constant VisitorTypeSUDP (line 78) | VisitorTypeSUDP VisitorType = "sudp" type TypedVisitorConfig (line 87) | type TypedVisitorConfig struct method UnmarshalJSON (line 92) | func (c *TypedVisitorConfig) UnmarshalJSON(b []byte) error { method MarshalJSON (line 103) | func (c *TypedVisitorConfig) MarshalJSON() ([]byte, error) { function NewVisitorConfigurerByType (line 107) | func NewVisitorConfigurerByType(t VisitorType) VisitorConfigurer { type STCPVisitorConfig (line 119) | type STCPVisitorConfig struct method Clone (line 123) | func (c *STCPVisitorConfig) Clone() VisitorConfigurer { type SUDPVisitorConfig (line 131) | type SUDPVisitorConfig struct method Clone (line 135) | func (c *SUDPVisitorConfig) Clone() VisitorConfigurer { type XTCPVisitorConfig (line 143) | type XTCPVisitorConfig struct method Complete (line 157) | func (c *XTCPVisitorConfig) Complete() { method Clone (line 166) | func (c *XTCPVisitorConfig) Clone() VisitorConfigurer { FILE: pkg/config/v1/visitor_plugin.go constant VisitorPluginVirtualNet (line 24) | VisitorPluginVirtualNet = "virtual_net" type VisitorPluginOptions (line 31) | type VisitorPluginOptions interface type TypedVisitorPluginOptions (line 36) | type TypedVisitorPluginOptions struct method Clone (line 41) | func (c TypedVisitorPluginOptions) Clone() TypedVisitorPluginOptions { method UnmarshalJSON (line 49) | func (c *TypedVisitorPluginOptions) UnmarshalJSON(b []byte) error { method MarshalJSON (line 58) | func (c *TypedVisitorPluginOptions) MarshalJSON() ([]byte, error) { type VirtualNetVisitorPluginOptions (line 62) | type VirtualNetVisitorPluginOptions struct method Complete (line 67) | func (o *VirtualNetVisitorPluginOptions) Complete() {} method Clone (line 69) | func (o *VirtualNetVisitorPluginOptions) Clone() VisitorPluginOptions { FILE: pkg/metrics/aggregate/server.go function EnableMem (line 24) | func EnableMem() { function EnablePrometheus (line 29) | func EnablePrometheus() { function init (line 35) | func init() { type serverMetrics (line 39) | type serverMetrics struct method Add (line 43) | func (m *serverMetrics) Add(sm metrics.ServerMetrics) { method NewClient (line 47) | func (m *serverMetrics) NewClient() { method CloseClient (line 53) | func (m *serverMetrics) CloseClient() { method NewProxy (line 59) | func (m *serverMetrics) NewProxy(name string, proxyType string, user s... method CloseProxy (line 65) | func (m *serverMetrics) CloseProxy(name string, proxyType string) { method OpenConnection (line 71) | func (m *serverMetrics) OpenConnection(name string, proxyType string) { method CloseConnection (line 77) | func (m *serverMetrics) CloseConnection(name string, proxyType string) { method AddTrafficIn (line 83) | func (m *serverMetrics) AddTrafficIn(name string, proxyType string, tr... method AddTrafficOut (line 89) | func (m *serverMetrics) AddTrafficOut(name string, proxyType string, t... FILE: pkg/metrics/mem/server.go function init (line 33) | func init() { type serverMetrics (line 39) | type serverMetrics struct method run (line 59) | func (m *serverMetrics) run() { method clearUselessInfo (line 70) | func (m *serverMetrics) clearUselessInfo(continuousOfflineDuration tim... method ClearOfflineProxies (line 89) | func (m *serverMetrics) ClearOfflineProxies() (int, int) { method NewClient (line 93) | func (m *serverMetrics) NewClient() { method CloseClient (line 97) | func (m *serverMetrics) CloseClient() { method NewProxy (line 101) | func (m *serverMetrics) NewProxy(name string, proxyType string, user s... method CloseProxy (line 127) | func (m *serverMetrics) CloseProxy(name string, proxyType string) { method OpenConnection (line 138) | func (m *serverMetrics) OpenConnection(name string, _ string) { method CloseConnection (line 149) | func (m *serverMetrics) CloseConnection(name string, _ string) { method AddTrafficIn (line 160) | func (m *serverMetrics) AddTrafficIn(name string, _ string, trafficByt... method AddTrafficOut (line 172) | func (m *serverMetrics) AddTrafficOut(name string, _ string, trafficBy... method GetServer (line 186) | func (m *serverMetrics) GetServer() *ServerStats { method GetProxiesByType (line 221) | func (m *serverMetrics) GetProxiesByType(proxyType string) []*ProxySta... method GetProxiesByTypeAndName (line 235) | func (m *serverMetrics) GetProxiesByTypeAndName(proxyType string, prox... method GetProxyByName (line 246) | func (m *serverMetrics) GetProxyByName(proxyName string) (res *ProxySt... method GetProxyTraffic (line 257) | func (m *serverMetrics) GetProxyTraffic(name string) (res *ProxyTraffi... function newServerMetrics (line 44) | func newServerMetrics() *serverMetrics { function toProxyStats (line 202) | func toProxyStats(name string, proxyStats *ProxyStatistics) *ProxyStats { FILE: pkg/metrics/mem/types.go constant ReserveDays (line 24) | ReserveDays = 7 type ServerStats (line 27) | type ServerStats struct type ProxyStats (line 35) | type ProxyStats struct type ProxyTrafficInfo (line 47) | type ProxyTrafficInfo struct type ProxyStatistics (line 53) | type ProxyStatistics struct type ServerStatistics (line 65) | type ServerStatistics struct type Collector (line 81) | type Collector interface FILE: pkg/metrics/prometheus/server.go constant namespace (line 10) | namespace = "frp" constant serverSubsystem (line 11) | serverSubsystem = "server" type serverMetrics (line 16) | type serverMetrics struct method NewClient (line 25) | func (m *serverMetrics) NewClient() { method CloseClient (line 29) | func (m *serverMetrics) CloseClient() { method NewProxy (line 33) | func (m *serverMetrics) NewProxy(name string, proxyType string, _ stri... method CloseProxy (line 38) | func (m *serverMetrics) CloseProxy(name string, proxyType string) { method OpenConnection (line 43) | func (m *serverMetrics) OpenConnection(name string, proxyType string) { method CloseConnection (line 47) | func (m *serverMetrics) CloseConnection(name string, proxyType string) { method AddTrafficIn (line 51) | func (m *serverMetrics) AddTrafficIn(name string, proxyType string, tr... method AddTrafficOut (line 55) | func (m *serverMetrics) AddTrafficOut(name string, proxyType string, t... function newServerMetrics (line 59) | func newServerMetrics() *serverMetrics { FILE: pkg/msg/ctl.go function init (line 27) | func init() { function ReadMsg (line 34) | func ReadMsg(c io.Reader) (msg Message, err error) { function ReadMsgInto (line 38) | func ReadMsgInto(c io.Reader, msg Message) (err error) { function WriteMsg (line 42) | func WriteMsg(c io.Writer, msg any) (err error) { FILE: pkg/msg/handler.go function AsyncHandler (line 22) | func AsyncHandler(f func(Message)) func(Message) { type Dispatcher (line 29) | type Dispatcher struct method Run (line 48) | func (d *Dispatcher) Run() { method sendLoop (line 53) | func (d *Dispatcher) sendLoop() { method readLoop (line 64) | func (d *Dispatcher) readLoop() { method Send (line 80) | func (d *Dispatcher) Send(m Message) error { method RegisterHandler (line 89) | func (d *Dispatcher) RegisterHandler(msg Message, handler func(Message... method RegisterDefaultHandler (line 93) | func (d *Dispatcher) RegisterDefaultHandler(handler func(Message)) { method Done (line 97) | func (d *Dispatcher) Done() chan struct{} { function NewDispatcher (line 38) | func NewDispatcher(rw io.ReadWriter) *Dispatcher { FILE: pkg/msg/msg.go constant TypeLogin (line 23) | TypeLogin = 'o' constant TypeLoginResp (line 24) | TypeLoginResp = '1' constant TypeNewProxy (line 25) | TypeNewProxy = 'p' constant TypeNewProxyResp (line 26) | TypeNewProxyResp = '2' constant TypeCloseProxy (line 27) | TypeCloseProxy = 'c' constant TypeNewWorkConn (line 28) | TypeNewWorkConn = 'w' constant TypeReqWorkConn (line 29) | TypeReqWorkConn = 'r' constant TypeStartWorkConn (line 30) | TypeStartWorkConn = 's' constant TypeNewVisitorConn (line 31) | TypeNewVisitorConn = 'v' constant TypeNewVisitorConnResp (line 32) | TypeNewVisitorConnResp = '3' constant TypePing (line 33) | TypePing = 'h' constant TypePong (line 34) | TypePong = '4' constant TypeUDPPacket (line 35) | TypeUDPPacket = 'u' constant TypeNatHoleVisitor (line 36) | TypeNatHoleVisitor = 'i' constant TypeNatHoleClient (line 37) | TypeNatHoleClient = 'n' constant TypeNatHoleResp (line 38) | TypeNatHoleResp = 'm' constant TypeNatHoleSid (line 39) | TypeNatHoleSid = '5' constant TypeNatHoleReport (line 40) | TypeNatHoleReport = '6' type ClientSpec (line 66) | type ClientSpec struct type Login (line 76) | type Login struct type LoginResp (line 95) | type LoginResp struct type NewProxy (line 102) | type NewProxy struct type NewProxyResp (line 136) | type NewProxyResp struct type CloseProxy (line 142) | type CloseProxy struct type NewWorkConn (line 146) | type NewWorkConn struct type ReqWorkConn (line 152) | type ReqWorkConn struct type StartWorkConn (line 154) | type StartWorkConn struct type NewVisitorConn (line 163) | type NewVisitorConn struct type NewVisitorConnResp (line 172) | type NewVisitorConnResp struct type Ping (line 177) | type Ping struct type Pong (line 182) | type Pong struct type UDPPacket (line 186) | type UDPPacket struct type NatHoleVisitor (line 192) | type NatHoleVisitor struct type NatHoleClient (line 203) | type NatHoleClient struct type PortsRange (line 211) | type PortsRange struct type NatHoleDetectBehavior (line 216) | type NatHoleDetectBehavior struct type NatHoleResp (line 227) | type NatHoleResp struct type NatHoleSid (line 237) | type NatHoleSid struct type NatHoleReport (line 244) | type NatHoleReport struct FILE: pkg/naming/names.go function AddUserPrefix (line 6) | func AddUserPrefix(user, name string) string { function StripUserPrefix (line 15) | func StripUserPrefix(user, name string) string { function BuildTargetServerProxyName (line 27) | func BuildTargetServerProxyName(localUser, serverUser, serverName string... FILE: pkg/naming/names_test.go function TestAddUserPrefix (line 9) | func TestAddUserPrefix(t *testing.T) { function TestStripUserPrefix (line 15) | func TestStripUserPrefix(t *testing.T) { function TestBuildTargetServerProxyName (line 23) | func TestBuildTargetServerProxyName(t *testing.T) { FILE: pkg/nathole/analysis.go function getBehaviorByMode (line 122) | func getBehaviorByMode(mode int) []lo.Tuple2[RecommandBehavior, Recomman... function getBehaviorByModeAndIndex (line 139) | func getBehaviorByModeAndIndex(mode int, index int) (RecommandBehavior, ... function getBehaviorScoresByMode (line 147) | func getBehaviorScoresByMode(mode int, defaultScore int) []*BehaviorScore { function getBehaviorScoresByMode2 (line 151) | func getBehaviorScoresByMode2(mode int, senderScore, receiverScore int) ... type RecommandBehavior (line 164) | type RecommandBehavior struct type MakeHoleRecords (line 173) | type MakeHoleRecords struct method ReportSuccess (line 218) | func (mhr *MakeHoleRecords) ReportSuccess(mode int, index int) { method Recommand (line 234) | func (mhr *MakeHoleRecords) Recommand() (mode, index int) { function NewMakeHoleRecords (line 179) | func NewMakeHoleRecords(c, v *NatFeature) *MakeHoleRecords { type BehaviorScore (line 249) | type BehaviorScore struct type Analyzer (line 256) | type Analyzer struct method GetRecommandBehaviors (line 271) | func (a *Analyzer) GetRecommandBehaviors(key string, c, v *NatFeature)... method ReportSuccess (line 303) | func (a *Analyzer) ReportSuccess(key string, mode, index int) { method Clean (line 313) | func (a *Analyzer) Clean() (int, int) { function NewAnalyzer (line 264) | func NewAnalyzer(dataReserveDuration time.Duration) *Analyzer { FILE: pkg/nathole/classify.go constant EasyNAT (line 25) | EasyNAT = "EasyNAT" constant HardNAT (line 26) | HardNAT = "HardNAT" constant BehaviorNoChange (line 28) | BehaviorNoChange = "BehaviorNoChange" constant BehaviorIPChanged (line 29) | BehaviorIPChanged = "BehaviorIPChanged" constant BehaviorPortChanged (line 30) | BehaviorPortChanged = "BehaviorPortChanged" constant BehaviorBothChanged (line 31) | BehaviorBothChanged = "BehaviorBothChanged" type NatFeature (line 34) | type NatFeature struct function ClassifyNATFeature (line 42) | func ClassifyNATFeature(addresses []string, localIPs []string) (*NatFeat... function ClassifyFeatureCount (line 106) | func ClassifyFeatureCount(features []*NatFeature) (int, int, int) { FILE: pkg/nathole/controller.go function NewTransactionID (line 41) | func NewTransactionID() string { type ClientCfg (line 46) | type ClientCfg struct type Session (line 53) | type Session struct method genAnalysisKey (line 74) | func (s *Session) genAnalysisKey() { type Controller (line 94) | type Controller struct method CleanWorker (line 110) | func (c *Controller) CleanWorker(ctx context.Context) { method ListenClient (line 125) | func (c *Controller) ListenClient(name string, sk string, allowUsers [... method CloseClient (line 141) | func (c *Controller) CloseClient(name string) { method GenSid (line 147) | func (c *Controller) GenSid() string { method HandleVisitor (line 153) | func (c *Controller) HandleVisitor(m *msg.NatHoleVisitor, transporter ... method HandleClient (line 255) | func (c *Controller) HandleClient(m *msg.NatHoleClient, transporter tr... method HandleReport (line 271) | func (c *Controller) HandleReport(m *msg.NatHoleReport) { method GenNatHoleResponse (line 286) | func (c *Controller) GenNatHoleResponse(transactionID string, session ... method analysis (line 300) | func (c *Controller) analysis(session *Session) (*msg.NatHoleResp, *ms... function NewController (line 102) | func NewController(analysisDataReserveDuration time.Duration) (*Controll... function getRangePorts (line 371) | func getRangePorts(addrs []string, difference, maxNumber int) []msg.Port... FILE: pkg/nathole/discovery.go type Message (line 27) | type Message struct function Discover (line 33) | func Discover(stunServers []string, localAddr string) ([]string, net.Add... type stunResponse (line 55) | type stunResponse struct type discoverConn (line 60) | type discoverConn struct method Close (line 88) | func (c *discoverConn) Close() error { method readLoop (line 96) | func (c *discoverConn) readLoop() { method doSTUNRequest (line 112) | func (c *discoverConn) doSTUNRequest(addr string) (*stunResponse, erro... method discoverFromStunServer (line 160) | func (c *discoverConn) discoverFromStunServer(addr string) ([]string, ... function listen (line 67) | func listen(localAddr string) (*discoverConn, error) { FILE: pkg/nathole/nathole.go type PrepareOptions (line 72) | type PrepareOptions struct type PrepareResult (line 78) | type PrepareResult struct function PreCheck (line 88) | func PreCheck( function Prepare (line 118) | func Prepare(stunServers []string, opts PrepareOptions) (*PrepareResult,... function ExchangeInfo (line 164) | func ExchangeInfo( function MakeHole (line 192) | func MakeHole(ctx context.Context, listenConn *net.UDPConn, m *msg.NatHo... function waitDetectMessage (line 290) | func waitDetectMessage( function sendSidMessage (line 336) | func sendSidMessage( function sendSidMessageToRangePorts (line 388) | func sendSidMessageToRangePorts( function sendSidMessageToRandomPorts (line 406) | func sendSidMessageToRandomPorts( function parseIPs (line 445) | func parseIPs(addrs []string) []string { FILE: pkg/nathole/utils.go function EncodeMessage (line 29) | func EncodeMessage(m msg.Message, key []byte) ([]byte, error) { function DecodeMessageInto (line 42) | func DecodeMessageInto(data, key []byte, m msg.Message) error { type ChangedAddress (line 51) | type ChangedAddress struct method GetFrom (line 56) | func (s *ChangedAddress) GetFrom(m *stun.Message) error { method String (line 61) | func (s *ChangedAddress) String() string { function ListAllLocalIPs (line 65) | func ListAllLocalIPs() ([]net.IP, error) { function ListLocalIPsForNatHole (line 81) | func ListLocalIPsForNatHole(maxItems int) ([]string, error) { FILE: pkg/plugin/client/http2http.go function init (line 33) | func init() { type HTTP2HTTPPlugin (line 37) | type HTTP2HTTPPlugin struct method Handle (line 82) | func (p *HTTP2HTTPPlugin) Handle(_ context.Context, connInfo *Connecti... method Name (line 87) | func (p *HTTP2HTTPPlugin) Name() string { method Close (line 91) | func (p *HTTP2HTTPPlugin) Close() error { function NewHTTP2HTTPPlugin (line 44) | func NewHTTP2HTTPPlugin(_ PluginContext, options v1.ClientPluginOptions)... FILE: pkg/plugin/client/http2https.go function init (line 34) | func init() { type HTTP2HTTPSPlugin (line 38) | type HTTP2HTTPSPlugin struct method Handle (line 91) | func (p *HTTP2HTTPSPlugin) Handle(_ context.Context, connInfo *Connect... method Name (line 96) | func (p *HTTP2HTTPSPlugin) Name() string { method Close (line 100) | func (p *HTTP2HTTPSPlugin) Close() error { function NewHTTP2HTTPSPlugin (line 45) | func NewHTTP2HTTPSPlugin(_ PluginContext, options v1.ClientPluginOptions... FILE: pkg/plugin/client/http_proxy.go function init (line 37) | func init() { type HTTPProxy (line 41) | type HTTPProxy struct method Name (line 68) | func (hp *HTTPProxy) Name() string { method Handle (line 72) | func (hp *HTTPProxy) Handle(_ context.Context, connInfo *ConnectionInf... method Close (line 97) | func (hp *HTTPProxy) Close() error { method ServeHTTP (line 103) | func (hp *HTTPProxy) ServeHTTP(rw http.ResponseWriter, req *http.Reque... method HTTPHandler (line 119) | func (hp *HTTPProxy) HTTPHandler(rw http.ResponseWriter, req *http.Req... method ConnectHandler (line 141) | func (hp *HTTPProxy) ConnectHandler(rw http.ResponseWriter, req *http.... method Auth (line 165) | func (hp *HTTPProxy) Auth(req *http.Request) bool { method handleConnectReq (line 193) | func (hp *HTTPProxy) handleConnectReq(req *http.Request, rwc io.ReadWr... function NewHTTPProxyPlugin (line 48) | func NewHTTPProxyPlugin(_ PluginContext, options v1.ClientPluginOptions)... function copyHeaders (line 220) | func copyHeaders(dst, src http.Header) { function removeProxyHeaders (line 228) | func removeProxyHeaders(req *http.Request) { function getBadResponse (line 240) | func getBadResponse() *http.Response { FILE: pkg/plugin/client/https2http.go function init (line 38) | func init() { type HTTPS2HTTPPlugin (line 42) | type HTTPS2HTTPPlugin struct method Handle (line 107) | func (p *HTTPS2HTTPPlugin) Handle(_ context.Context, connInfo *Connect... method Name (line 115) | func (p *HTTPS2HTTPPlugin) Name() string { method Close (line 119) | func (p *HTTPS2HTTPPlugin) Close() error { function NewHTTPS2HTTPPlugin (line 49) | func NewHTTPS2HTTPPlugin(_ PluginContext, options v1.ClientPluginOptions... FILE: pkg/plugin/client/https2https.go function init (line 38) | func init() { type HTTPS2HTTPSPlugin (line 42) | type HTTPS2HTTPSPlugin struct method Handle (line 113) | func (p *HTTPS2HTTPSPlugin) Handle(_ context.Context, connInfo *Connec... method Name (line 121) | func (p *HTTPS2HTTPSPlugin) Name() string { method Close (line 125) | func (p *HTTPS2HTTPSPlugin) Close() error { function NewHTTPS2HTTPSPlugin (line 49) | func NewHTTPS2HTTPSPlugin(_ PluginContext, options v1.ClientPluginOption... FILE: pkg/plugin/client/plugin.go type PluginContext (line 31) | type PluginContext struct type CreatorFn (line 39) | type CreatorFn function Register (line 41) | func Register(name string, fn CreatorFn) { function Create (line 48) | func Create(pluginName string, pluginCtx PluginContext, options v1.Clien... type ConnectionInfo (line 57) | type ConnectionInfo struct type Plugin (line 66) | type Plugin interface type Listener (line 73) | type Listener struct method Accept (line 85) | func (l *Listener) Accept() (net.Conn, error) { method PutConn (line 93) | func (l *Listener) PutConn(conn net.Conn) error { method Close (line 100) | func (l *Listener) Close() error { method Addr (line 110) | func (l *Listener) Addr() net.Addr { function NewProxyListener (line 79) | func NewProxyListener() *Listener { FILE: pkg/plugin/client/socks5.go function init (line 30) | func init() { type Socks5Plugin (line 34) | type Socks5Plugin struct method Handle (line 53) | func (sp *Socks5Plugin) Handle(_ context.Context, connInfo *Connection... method Name (line 59) | func (sp *Socks5Plugin) Name() string { method Close (line 63) | func (sp *Socks5Plugin) Close() error { function NewSocks5Plugin (line 38) | func NewSocks5Plugin(_ PluginContext, options v1.ClientPluginOptions) (p... FILE: pkg/plugin/client/static_file.go function init (line 30) | func init() { type StaticFilePlugin (line 34) | type StaticFilePlugin struct method Handle (line 71) | func (sp *StaticFilePlugin) Handle(_ context.Context, connInfo *Connec... method Name (line 76) | func (sp *StaticFilePlugin) Name() string { method Close (line 80) | func (sp *StaticFilePlugin) Close() error { function NewStaticFilePlugin (line 41) | func NewStaticFilePlugin(_ PluginContext, options v1.ClientPluginOptions... FILE: pkg/plugin/client/tls2raw.go function init (line 32) | func init() { type TLS2RawPlugin (line 36) | type TLS2RawPlugin struct method Handle (line 57) | func (p *TLS2RawPlugin) Handle(ctx context.Context, connInfo *Connecti... method Name (line 78) | func (p *TLS2RawPlugin) Name() string { method Close (line 82) | func (p *TLS2RawPlugin) Close() error { function NewTLS2RawPlugin (line 42) | func NewTLS2RawPlugin(_ PluginContext, options v1.ClientPluginOptions) (... FILE: pkg/plugin/client/unix_domain_socket.go function init (line 29) | func init() { type UnixDomainSocketPlugin (line 33) | type UnixDomainSocketPlugin struct method Handle (line 52) | func (uds *UnixDomainSocketPlugin) Handle(ctx context.Context, connInf... method Name (line 71) | func (uds *UnixDomainSocketPlugin) Name() string { method Close (line 75) | func (uds *UnixDomainSocketPlugin) Close() error { function NewUnixDomainSocketPlugin (line 37) | func NewUnixDomainSocketPlugin(_ PluginContext, options v1.ClientPluginO... FILE: pkg/plugin/client/virtual_net.go function init (line 27) | func init() { type VirtualNetPlugin (line 31) | type VirtualNetPlugin struct method Handle (line 48) | func (p *VirtualNetPlugin) Handle(ctx context.Context, connInfo *Conne... method RemoveConn (line 69) | func (p *VirtualNetPlugin) RemoveConn(conn io.ReadWriteCloser) { method Name (line 78) | func (p *VirtualNetPlugin) Name() string { method Close (line 82) | func (p *VirtualNetPlugin) Close() error { function NewVirtualNetPlugin (line 38) | func NewVirtualNetPlugin(pluginCtx PluginContext, options v1.ClientPlugi... FILE: pkg/plugin/server/http.go type httpPlugin (line 33) | type httpPlugin struct method Name (line 63) | func (p *httpPlugin) Name() string { method IsSupport (line 67) | func (p *httpPlugin) IsSupport(op string) bool { method Handle (line 71) | func (p *httpPlugin) Handle(ctx context.Context, op string, content an... method do (line 85) | func (p *httpPlugin) do(ctx context.Context, r *Request, res *Response... function NewHTTPPluginOptions (line 40) | func NewHTTPPluginOptions(options v1.HTTPPluginOptions) Plugin { FILE: pkg/plugin/server/manager.go type Manager (line 27) | type Manager struct method Register (line 47) | func (m *Manager) Register(p Plugin) { method Login (line 68) | func (m *Manager) Login(content *LoginContent) (*LoginContent, error) { method NewProxy (line 102) | func (m *Manager) NewProxy(content *NewProxyContent) (*NewProxyContent... method CloseProxy (line 136) | func (m *Manager) CloseProxy(content *CloseProxyContent) error { method Ping (line 161) | func (m *Manager) Ping(content *PingContent) (*PingContent, error) { method NewWorkConn (line 195) | func (m *Manager) NewWorkConn(content *NewWorkConnContent) (*NewWorkCo... method NewUserConn (line 229) | func (m *Manager) NewUserConn(content *NewUserConnContent) (*NewUserCo... function NewManager (line 36) | func NewManager() *Manager { FILE: pkg/plugin/server/plugin.go constant APIVersion (line 22) | APIVersion = "0.1.0" constant OpLogin (line 24) | OpLogin = "Login" constant OpNewProxy (line 25) | OpNewProxy = "NewProxy" constant OpCloseProxy (line 26) | OpCloseProxy = "CloseProxy" constant OpPing (line 27) | OpPing = "Ping" constant OpNewWorkConn (line 28) | OpNewWorkConn = "NewWorkConn" constant OpNewUserConn (line 29) | OpNewUserConn = "NewUserConn" type Plugin (line 32) | type Plugin interface FILE: pkg/plugin/server/tracer.go type key (line 21) | type key constant reqidKey (line 24) | reqidKey key = 0 function NewReqidContext (line 27) | func NewReqidContext(ctx context.Context, reqid string) context.Context { function GetReqidFromContext (line 31) | func GetReqidFromContext(ctx context.Context) string { FILE: pkg/plugin/server/types.go type Request (line 21) | type Request struct type Response (line 27) | type Response struct type LoginContent (line 34) | type LoginContent struct type UserInfo (line 40) | type UserInfo struct type NewProxyContent (line 46) | type NewProxyContent struct type CloseProxyContent (line 51) | type CloseProxyContent struct type PingContent (line 56) | type PingContent struct type NewWorkConnContent (line 61) | type NewWorkConnContent struct type NewUserConnContent (line 66) | type NewUserConnContent struct FILE: pkg/plugin/visitor/plugin.go type PluginContext (line 27) | type PluginContext struct type CreatorFn (line 45) | type CreatorFn function Register (line 47) | func Register(name string, fn CreatorFn) { function Create (line 54) | func Create(pluginName string, pluginCtx PluginContext, options v1.Visit... type Plugin (line 63) | type Plugin interface FILE: pkg/plugin/visitor/virtual_net.go function init (line 32) | func init() { type VirtualNetPlugin (line 36) | type VirtualNetPlugin struct method Name (line 82) | func (p *VirtualNetPlugin) Name() string { method Start (line 86) | func (p *VirtualNetPlugin) Start() { method run (line 101) | func (p *VirtualNetPlugin) run() { method cleanupControllerConn (line 186) | func (p *VirtualNetPlugin) cleanupControllerConn(xl *xlog.Logger) { method Close (line 198) | func (p *VirtualNetPlugin) Close() error { function NewVirtualNetPlugin (line 51) | func NewVirtualNetPlugin(pluginCtx PluginContext, options v1.VisitorPlug... FILE: pkg/policy/featuregate/feature_gate.go type Feature (line 27) | type Feature type FeatureStage (line 30) | type FeatureStage constant Alpha (line 34) | Alpha FeatureStage = "ALPHA" constant Beta (line 36) | Beta FeatureStage = "BETA" constant GA (line 38) | GA FeatureStage = "" type FeatureSpec (line 42) | type FeatureSpec struct type FeatureGate (line 63) | type FeatureGate interface type MutableFeatureGate (line 71) | type MutableFeatureGate interface type featureGate (line 83) | type featureGate struct method SetFromMap (line 105) | func (f *featureGate) SetFromMap(m map[string]bool) error { method Add (line 133) | func (f *featureGate) Add(features map[Feature]FeatureSpec) error { method String (line 162) | func (f *featureGate) String() string { method Enabled (line 173) | func (f *featureGate) Enabled(key Feature) bool { method KnownFeatures (line 185) | func (f *featureGate) KnownFeatures() []string { function NewFeatureGate (line 95) | func NewFeatureGate() MutableFeatureGate { function Enabled (line 202) | func Enabled(name Feature) bool { function SetFromMap (line 207) | func SetFromMap(featureMap map[string]bool) error { FILE: pkg/policy/security/unsafe.go constant TokenSourceExec (line 4) | TokenSourceExec = "TokenSourceExec" type UnsafeFeatures (line 17) | type UnsafeFeatures struct method IsEnabled (line 29) | func (u *UnsafeFeatures) IsEnabled(feature string) bool { function NewUnsafeFeatures (line 21) | func NewUnsafeFeatures(allowed []string) *UnsafeFeatures { FILE: pkg/proto/udp/udp.go function NewUDPPacket (line 29) | func NewUDPPacket(buf []byte, laddr, raddr *net.UDPAddr) *msg.UDPPacket { function GetContent (line 39) | func GetContent(m *msg.UDPPacket) (buf []byte, err error) { function ForwardUserConn (line 43) | func ForwardUserConn(udpConn *net.UDPConn, readCh <-chan *msg.UDPPacket,... function Forwarder (line 73) | func Forwarder(dstAddr *net.UDPAddr, readCh <-chan *msg.UDPPacket, sendC... FILE: pkg/proto/udp/udp_test.go function TestUdpPacket (line 9) | func TestUdpPacket(t *testing.T) { FILE: pkg/sdk/client/client.go type Client (line 18) | type Client struct method SetAuth (line 30) | func (c *Client) SetAuth(user, pwd string) { method GetProxyStatus (line 35) | func (c *Client) GetProxyStatus(ctx context.Context, name string) (*mo... method GetAllProxyStatus (line 58) | func (c *Client) GetAllProxyStatus(ctx context.Context) (model.StatusR... method Reload (line 74) | func (c *Client) Reload(ctx context.Context, strictMode bool) error { method Stop (line 91) | func (c *Client) Stop(ctx context.Context) error { method GetConfig (line 100) | func (c *Client) GetConfig(ctx context.Context) (string, error) { method UpdateConfig (line 108) | func (c *Client) UpdateConfig(ctx context.Context, content string) err... method setAuthHeader (line 117) | func (c *Client) setAuthHeader(req *http.Request) { method do (line 123) | func (c *Client) do(req *http.Request) (string, error) { function New (line 24) | func New(host string, port int) *Client { FILE: pkg/ssh/gateway.go type Gateway (line 32) | type Gateway struct method Run (line 105) | func (g *Gateway) Run() { method Close (line 115) | func (g *Gateway) Close() error { method handleConn (line 119) | func (g *Gateway) handleConn(conn net.Conn) { function NewGateway (line 41) | func NewGateway( function loadAuthorizedKeysFromFile (line 131) | func loadAuthorizedKeysFromFile(path string) (map[string]string, error) { FILE: pkg/ssh/server.go constant ChannelTypeServerOpenChannel (line 46) | ChannelTypeServerOpenChannel = "forwarded-tcpip" constant RequestTypeForward (line 47) | RequestTypeForward = "tcpip-forward" type tcpipForward (line 50) | type tcpipForward struct type forwardedTCPPayload (line 56) | type forwardedTCPPayload struct type TunnelServer (line 64) | type TunnelServer struct method Run (line 86) | func (s *TunnelServer) Run() error { method writeToClient (line 189) | func (s *TunnelServer) writeToClient(data string) { method waitForwardAddrAndExtraPayload (line 196) | func (s *TunnelServer) waitForwardAddrAndExtraPayload( method parseClientAndProxyConfigurer (line 253) | func (s *TunnelServer) parseClientAndProxyConfigurer(_ *tcpipForward, ... method handleNewChannel (line 298) | func (s *TunnelServer) handleNewChannel(channel ssh.NewChannel, extraP... method keepAlive (line 327) | func (s *TunnelServer) keepAlive(ch ssh.Channel) { method openConn (line 344) | func (s *TunnelServer) openConn(addr *tcpipForward) (net.Conn, error) { method waitProxyStatusReady (line 362) | func (s *TunnelServer) waitProxyStatusReady(name string, timeout time.... function NewTunnelServer (line 76) | func NewTunnelServer(conn net.Conn, sc *ssh.ServerConfig, peerServerList... FILE: pkg/ssh/terminal.go function createSuccessInfo (line 22) | func createSuccessInfo(user string, pc v1.ProxyConfigurer, ps *proxy.Wor... FILE: pkg/transport/message.go type MessageTransporter (line 27) | type MessageTransporter interface type MessageSender (line 38) | type MessageSender interface function NewMessageTransporter (line 42) | func NewMessageTransporter(sender MessageSender) MessageTransporter { type transporterImpl (line 49) | type transporterImpl struct method Send (line 59) | func (impl *transporterImpl) Send(m msg.Message) error { method Do (line 63) | func (impl *transporterImpl) Do(ctx context.Context, req msg.Message, ... method DispatchWithType (line 81) | func (impl *transporterImpl) DispatchWithType(m msg.Message, msgType, ... method Dispatch (line 102) | func (impl *transporterImpl) Dispatch(m msg.Message, laneKey string) b... method registerMsgChan (line 107) | func (impl *transporterImpl) registerMsgChan(recvCh chan msg.Message, ... FILE: pkg/transport/tls.go function newCustomTLSKeyPair (line 29) | func newCustomTLSKeyPair(certfile, keyfile string) (*tls.Certificate, er... function newRandomTLSKeyPair (line 37) | func newRandomTLSKeyPair() (*tls.Certificate, error) { function newCertPool (line 81) | func newCertPool(caPath string) (*x509.CertPool, error) { function NewServerTLSConfig (line 96) | func NewServerTLSConfig(certPath, keyPath, caPath string) (*tls.Config, ... function NewClientTLSConfig (line 128) | func NewClientTLSConfig(certPath, keyPath, caPath, serverName string) (*... function NewRandomPrivateKey (line 157) | func NewRandomPrivateKey() ([]byte, error) { FILE: pkg/util/http/context.go type Context (line 25) | type Context struct method Param (line 39) | func (c *Context) Param(key string) string { method Query (line 43) | func (c *Context) Query(key string) string { method BindJSON (line 47) | func (c *Context) BindJSON(obj any) error { method Body (line 55) | func (c *Context) Body() ([]byte, error) { function NewContext (line 31) | func NewContext(w http.ResponseWriter, r *http.Request) *Context { FILE: pkg/util/http/error.go type Error (line 19) | type Error struct method Error (line 24) | func (e *Error) Error() string { function NewError (line 28) | func NewError(code int, msg string) *Error { FILE: pkg/util/http/handler.go type GeneralResponse (line 24) | type GeneralResponse struct type APIHandler (line 30) | type APIHandler function MakeHTTPHandlerFunc (line 33) | func MakeHTTPHandlerFunc(handler APIHandler) http.HandlerFunc { FILE: pkg/util/http/http.go function OkResponse (line 24) | func OkResponse() *http.Response { function ProxyUnauthorizedResponse (line 38) | func ProxyUnauthorizedResponse() *http.Response { function CanonicalHost (line 54) | func CanonicalHost(host string) (string, error) { function hasPort (line 70) | func hasPort(host string) bool { function ParseBasicAuth (line 81) | func ParseBasicAuth(auth string) (username, password string, ok bool) { function BasicAuth (line 99) | func BasicAuth(username, passwd string) string { FILE: pkg/util/http/middleware.go type responseWriter (line 23) | type responseWriter struct method WriteHeader (line 28) | func (rw *responseWriter) WriteHeader(code int) { function NewRequestLogger (line 33) | func NewRequestLogger(next http.Handler) http.Handler { FILE: pkg/util/http/server.go type Server (line 37) | type Server struct method Address (line 90) | func (s *Server) Address() string { method Run (line 94) | func (s *Server) Run() error { method Close (line 102) | func (s *Server) Close() error { method RouteRegister (line 116) | func (s *Server) RouteRegister(register func(helper *RouterRegisterHel... method registerPprofHandlers (line 124) | func (s *Server) registerPprofHandlers() { function NewServer (line 48) | func NewServer(cfg v1.WebServerConfig) (*Server, error) { type RouterRegisterHelper (line 110) | type RouterRegisterHelper struct FILE: pkg/util/jsonx/json_v1.go type DecodeOptions (line 22) | type DecodeOptions struct function Marshal (line 26) | func Marshal(v any) ([]byte, error) { function MarshalIndent (line 30) | func MarshalIndent(v any, prefix, indent string) ([]byte, error) { function Unmarshal (line 34) | func Unmarshal(data []byte, out any) error { function UnmarshalWithOptions (line 38) | func UnmarshalWithOptions(data []byte, out any, options DecodeOptions) e... FILE: pkg/util/jsonx/raw_message.go type RawMessage (line 21) | type RawMessage method MarshalJSON (line 23) | func (m RawMessage) MarshalJSON() ([]byte, error) { method UnmarshalJSON (line 30) | func (m *RawMessage) UnmarshalJSON(data []byte) error { FILE: pkg/util/limit/reader.go type Reader (line 24) | type Reader struct method Read (line 36) | func (r *Reader) Read(p []byte) (n int, err error) { function NewReader (line 29) | func NewReader(r io.Reader, limiter *rate.Limiter) *Reader { FILE: pkg/util/limit/writer.go type Writer (line 24) | type Writer struct method Write (line 36) | func (w *Writer) Write(p []byte) (n int, err error) { function NewWriter (line 29) | func NewWriter(w io.Writer, limiter *rate.Limiter) *Writer { FILE: pkg/util/log/log.go function init (line 34) | func init() { function InitLogger (line 42) | func InitLogger(logPath string, levelStr string, maxDays int, disableLog... function Errorf (line 70) | func Errorf(format string, v ...any) { function Warnf (line 74) | func Warnf(format string, v ...any) { function Infof (line 78) | func Infof(format string, v ...any) { function Debugf (line 82) | func Debugf(format string, v ...any) { function Tracef (line 86) | func Tracef(format string, v ...any) { function Logf (line 90) | func Logf(level log.Level, offset int, format string, v ...any) { type WriteLogger (line 94) | type WriteLogger struct method Write (line 106) | func (w *WriteLogger) Write(p []byte) (n int, err error) { function NewWriteLogger (line 99) | func NewWriteLogger(level log.Level, offset int) *WriteLogger { FILE: pkg/util/metric/counter.go type Counter (line 21) | type Counter interface function NewCounter (line 29) | func NewCounter() Counter { type StandardCounter (line 35) | type StandardCounter struct method Count (line 39) | func (c *StandardCounter) Count() int32 { method Inc (line 43) | func (c *StandardCounter) Inc(count int32) { method Dec (line 47) | func (c *StandardCounter) Dec(count int32) { method Snapshot (line 51) | func (c *StandardCounter) Snapshot() Counter { method Clear (line 58) | func (c *StandardCounter) Clear() { FILE: pkg/util/metric/counter_test.go function TestCounter (line 9) | func TestCounter(t *testing.T) { FILE: pkg/util/metric/date_counter.go type DateCounter (line 22) | type DateCounter interface function NewDateCounter (line 31) | func NewDateCounter(reserveDays int64) DateCounter { type StandardDateCounter (line 38) | type StandardDateCounter struct method TodayCount (line 57) | func (c *StandardDateCounter) TodayCount() int64 { method GetLastDaysCount (line 65) | func (c *StandardDateCounter) GetLastDaysCount(lastdays int64) []int64 { method Inc (line 80) | func (c *StandardDateCounter) Inc(count int64) { method Dec (line 87) | func (c *StandardDateCounter) Dec(count int64) { method Snapshot (line 94) | func (c *StandardDateCounter) Snapshot() DateCounter { method Clear (line 104) | func (c *StandardDateCounter) Clear() { method rotate (line 114) | func (c *StandardDateCounter) rotate(now time.Time) { function newStandardDateCounter (line 46) | func newStandardDateCounter(reserveDays int64) *StandardDateCounter { FILE: pkg/util/metric/date_counter_test.go function TestDateCounter (line 9) | func TestDateCounter(t *testing.T) { FILE: pkg/util/metric/metrics.go type GaugeMetric (line 19) | type GaugeMetric interface type CounterMetric (line 27) | type CounterMetric interface type HistogramMetric (line 32) | type HistogramMetric interface FILE: pkg/util/net/conn.go type ContextGetter (line 31) | type ContextGetter interface type ContextSetter (line 35) | type ContextSetter interface function NewLogFromConn (line 39) | func NewLogFromConn(conn net.Conn) *xlog.Logger { function NewContextFromConn (line 46) | func NewContextFromConn(conn net.Conn) context.Context { type ContextConn (line 54) | type ContextConn struct method WithContext (line 67) | func (c *ContextConn) WithContext(ctx context.Context) { method Context (line 71) | func (c *ContextConn) Context() context.Context { function NewContextConn (line 60) | func NewContextConn(ctx context.Context, c net.Conn) *ContextConn { type WrapReadWriteCloserConn (line 75) | type WrapReadWriteCloserConn struct method LocalAddr (line 90) | func (conn *WrapReadWriteCloserConn) LocalAddr() net.Addr { method SetRemoteAddr (line 97) | func (conn *WrapReadWriteCloserConn) SetRemoteAddr(addr net.Addr) { method RemoteAddr (line 101) | func (conn *WrapReadWriteCloserConn) RemoteAddr() net.Addr { method SetDeadline (line 111) | func (conn *WrapReadWriteCloserConn) SetDeadline(t time.Time) error { method SetReadDeadline (line 118) | func (conn *WrapReadWriteCloserConn) SetReadDeadline(t time.Time) error { method SetWriteDeadline (line 125) | func (conn *WrapReadWriteCloserConn) SetWriteDeadline(t time.Time) err... function WrapReadWriteCloserToConn (line 83) | func WrapReadWriteCloserToConn(rwc io.ReadWriteCloser, underConn net.Con... type CloseNotifyConn (line 132) | type CloseNotifyConn struct method Close (line 149) | func (cc *CloseNotifyConn) Close() (err error) { method CloseWithError (line 161) | func (cc *CloseNotifyConn) CloseWithError(err error) error { function WrapCloseNotifyConn (line 142) | func WrapCloseNotifyConn(c net.Conn, closeFn func(error)) *CloseNotifyCo... type StatsConn (line 173) | type StatsConn struct method Read (line 189) | func (statsConn *StatsConn) Read(p []byte) (n int, err error) { method Write (line 195) | func (statsConn *StatsConn) Write(p []byte) (n int, err error) { method Close (line 201) | func (statsConn *StatsConn) Close() (err error) { function WrapStatsConn (line 182) | func WrapStatsConn(conn net.Conn, statsFunc func(total, totalWrite int64... type wrapQuicStream (line 212) | type wrapQuicStream struct method LocalAddr (line 224) | func (conn *wrapQuicStream) LocalAddr() net.Addr { method RemoteAddr (line 231) | func (conn *wrapQuicStream) RemoteAddr() net.Addr { method Close (line 238) | func (conn *wrapQuicStream) Close() error { function QuicStreamToNetConn (line 217) | func QuicStreamToNetConn(s *quic.Stream, c *quic.Conn) net.Conn { function NewCryptoReadWriter (line 243) | func NewCryptoReadWriter(rw io.ReadWriter, key []byte) (io.ReadWriter, e... FILE: pkg/util/net/dial.go function DialHookCustomTLSHeadByte (line 12) | func DialHookCustomTLSHeadByte(enableTLS bool, disableCustomTLSHeadByte ... function DialHookWebsocket (line 24) | func DialHookWebsocket(protocol string, host string) libnet.AfterHookFunc { FILE: pkg/util/net/dns.go function SetDefaultDNSAddress (line 22) | func SetDefaultDNSAddress(dnsAddress string) { FILE: pkg/util/net/http.go type HTTPAuthMiddleware (line 27) | type HTTPAuthMiddleware struct method SetAuthFailDelay (line 40) | func (authMid *HTTPAuthMiddleware) SetAuthFailDelay(delay time.Duratio... method Middleware (line 45) | func (authMid *HTTPAuthMiddleware) Middleware(next http.Handler) http.... function NewHTTPAuthMiddleware (line 33) | func NewHTTPAuthMiddleware(user, passwd string) *HTTPAuthMiddleware { type HTTPGzipWrapper (line 62) | type HTTPGzipWrapper struct method ServeHTTP (line 66) | func (gw *HTTPGzipWrapper) ServeHTTP(w http.ResponseWriter, r *http.Re... function MakeHTTPGzipHandler (line 78) | func MakeHTTPGzipHandler(h http.Handler) http.Handler { type gzipResponseWriter (line 84) | type gzipResponseWriter struct method Write (line 89) | func (w gzipResponseWriter) Write(b []byte) (int, error) { FILE: pkg/util/net/kcp.go type KCPListener (line 24) | type KCPListener struct method Accept (line 67) | func (l *KCPListener) Accept() (net.Conn, error) { method Close (line 75) | func (l *KCPListener) Close() error { method Addr (line 83) | func (l *KCPListener) Addr() net.Addr { function ListenKcp (line 30) | func ListenKcp(address string) (l *KCPListener, err error) { function NewKCPConnFromUDP (line 87) | func NewKCPConnFromUDP(conn *net.UDPConn, connected bool, raddr string) ... FILE: pkg/util/net/listener.go type InternalListener (line 27) | type InternalListener struct method Accept (line 39) | func (l *InternalListener) Accept() (net.Conn, error) { method PutConn (line 47) | func (l *InternalListener) PutConn(conn net.Conn) error { method Close (line 61) | func (l *InternalListener) Close() error { method Addr (line 71) | func (l *InternalListener) Addr() net.Addr { function NewInternalListener (line 33) | func NewInternalListener() *InternalListener { type InternalAddr (line 75) | type InternalAddr struct method Network (line 77) | func (ia *InternalAddr) Network() string { method String (line 81) | func (ia *InternalAddr) String() string { FILE: pkg/util/net/proxyprotocol.go function BuildProxyProtocolHeaderStruct (line 25) | func BuildProxyProtocolHeaderStruct(srcAddr, dstAddr net.Addr, version s... function BuildProxyProtocolHeader (line 35) | func BuildProxyProtocolHeader(srcAddr, dstAddr net.Addr, version string)... FILE: pkg/util/net/proxyprotocol_test.go function TestBuildProxyProtocolHeader (line 11) | func TestBuildProxyProtocolHeader(t *testing.T) { function TestBuildProxyProtocolHeaderStruct (line 85) | func TestBuildProxyProtocolHeaderStruct(t *testing.T) { FILE: pkg/util/net/tls.go function CheckAndEnableTLSServerConnWithTimeout (line 28) | func CheckAndEnableTLSServerConnWithTimeout( FILE: pkg/util/net/udp.go type UDPPacket (line 28) | type UDPPacket struct type FakeUDPConn (line 34) | type FakeUDPConn struct method putPacket (line 69) | func (c *FakeUDPConn) putPacket(content []byte) { method Read (line 80) | func (c *FakeUDPConn) Read(b []byte) (n int, err error) { method Write (line 94) | func (c *FakeUDPConn) Write(b []byte) (n int, err error) { method Close (line 115) | func (c *FakeUDPConn) Close() error { method IsClosed (line 125) | func (c *FakeUDPConn) IsClosed() bool { method LocalAddr (line 131) | func (c *FakeUDPConn) LocalAddr() net.Addr { method RemoteAddr (line 135) | func (c *FakeUDPConn) RemoteAddr() net.Addr { method SetDeadline (line 139) | func (c *FakeUDPConn) SetDeadline(_ time.Time) error { method SetReadDeadline (line 143) | func (c *FakeUDPConn) SetReadDeadline(_ time.Time) error { method SetWriteDeadline (line 147) | func (c *FakeUDPConn) SetWriteDeadline(_ time.Time) error { function NewFakeUDPConn (line 46) | func NewFakeUDPConn(l *UDPListener, laddr, raddr net.Addr) *FakeUDPConn { type UDPListener (line 151) | type UDPListener struct method writeUDPPacket (line 218) | func (l *UDPListener) writeUDPPacket(packet *UDPPacket) (err error) { method WriteMsg (line 228) | func (l *UDPListener) WriteMsg(buf []byte, remoteAddr *net.UDPAddr) (e... method Accept (line 238) | func (l *UDPListener) Accept() (net.Conn, error) { method Close (line 246) | func (l *UDPListener) Close() error { method Addr (line 256) | func (l *UDPListener) Addr() net.Addr { function ListenUDP (line 161) | func ListenUDP(bindAddr string, bindPort int) (l *UDPListener, err error) { type ConnectedUDPConn (line 263) | type ConnectedUDPConn struct method WriteTo (line 266) | func (c *ConnectedUDPConn) WriteTo(b []byte, _ net.Addr) (int, error) ... FILE: pkg/util/net/websocket.go constant FrpWebsocketPath (line 15) | FrpWebsocketPath = "/~!frp" type WebsocketListener (line 18) | type WebsocketListener struct method Accept (line 55) | func (p *WebsocketListener) Accept() (net.Conn, error) { method Close (line 63) | func (p *WebsocketListener) Close() error { method Addr (line 67) | func (p *WebsocketListener) Addr() net.Addr { function NewWebsocketListener (line 27) | func NewWebsocketListener(ln net.Listener) (wl *WebsocketListener) { FILE: pkg/util/system/system.go function EnableCompatibilityMode (line 21) | func EnableCompatibilityMode() { FILE: pkg/util/system/system_android.go function EnableCompatibilityMode (line 25) | func EnableCompatibilityMode() { function fixTimezone (line 31) | func fixTimezone() { function fixDNSResolver (line 46) | func fixDNSResolver() { FILE: pkg/util/tcpmux/httpconnect.go type HTTPConnectTCPMuxer (line 31) | type HTTPConnectTCPMuxer struct method readHTTPConnectRequest (line 49) | func (muxer *HTTPConnectTCPMuxer) readHTTPConnectRequest(rd io.Reader)... method sendConnectResponse (line 70) | func (muxer *HTTPConnectTCPMuxer) sendConnectResponse(c net.Conn, _ ma... method auth (line 81) | func (muxer *HTTPConnectTCPMuxer) auth(c net.Conn, username, password ... method getHostFromHTTPConnect (line 105) | func (muxer *HTTPConnectTCPMuxer) getHostFromHTTPConnect(c net.Conn) (... function NewHTTPConnectTCPMuxer (line 39) | func NewHTTPConnectTCPMuxer(listener net.Listener, passthrough bool, tim... function vhostFailed (line 96) | func vhostFailed(c net.Conn) { FILE: pkg/util/util/types.go function EmptyOr (line 17) | func EmptyOr[T comparable](v T, fallback T) T { FILE: pkg/util/util/util.go function RandID (line 31) | func RandID() (id string, err error) { function RandIDWithLen (line 36) | func RandIDWithLen(idLen int) (id string, err error) { function GetAuthKey (line 50) | func GetAuthKey(token string, timestamp int64) (key string) { function CanonicalAddr (line 58) | func CanonicalAddr(host string, port int) (addr string) { function ParseRangeNumbers (line 67) | func ParseRangeNumbers(rangeStr string) (numbers []int64, err error) { function GenerateResponseErrorString (line 113) | func GenerateResponseErrorString(summary string, err error, detailed boo... function RandomSleep (line 120) | func RandomSleep(duration time.Duration, minRatio, maxRatio float64) tim... function ConstantTimeEqString (line 134) | func ConstantTimeEqString(a, b string) bool { function ClonePtr (line 139) | func ClonePtr[T any](v *T) *T { FILE: pkg/util/util/util_test.go function TestRandId (line 9) | func TestRandId(t *testing.T) { function TestGetAuthKey (line 17) | func TestGetAuthKey(t *testing.T) { function TestParseRangeNumbers (line 23) | func TestParseRangeNumbers(t *testing.T) { function TestClonePtr (line 45) | func TestClonePtr(t *testing.T) { FILE: pkg/util/version/version.go function Full (line 19) | func Full() string { FILE: pkg/util/vhost/http.go type HTTPReverseProxyOptions (line 41) | type HTTPReverseProxyOptions struct type HTTPReverseProxy (line 45) | type HTTPReverseProxy struct method Register (line 149) | func (rp *HTTPReverseProxy) Register(routeCfg RouteConfig) error { method UnRegister (line 158) | func (rp *HTTPReverseProxy) UnRegister(routeCfg RouteConfig) { method GetRouteConfig (line 162) | func (rp *HTTPReverseProxy) GetRouteConfig(domain, location, routeByHT... method CreateConnection (line 172) | func (rp *HTTPReverseProxy) CreateConnection(reqRouteInfo *RequestRout... method CheckAuth (line 190) | func (rp *HTTPReverseProxy) CheckAuth(domain, location, routeByHTTPUse... method getVhost (line 203) | func (rp *HTTPReverseProxy) getVhost(domain, location, routeByHTTPUser... method connectHandler (line 246) | func (rp *HTTPReverseProxy) connectHandler(rw http.ResponseWriter, req... method injectRequestInfoToCtx (line 269) | func (rp *HTTPReverseProxy) injectRequestInfoToCtx(req *http.Request) ... method ServeHTTP (line 299) | func (rp *HTTPReverseProxy) ServeHTTP(rw http.ResponseWriter, req *htt... function NewHTTPReverseProxy (line 52) | func NewHTTPReverseProxy(option HTTPReverseProxyOptions, vhostRouter *Ro... FILE: pkg/util/vhost/https.go type HTTPSMuxer (line 26) | type HTTPSMuxer struct function NewHTTPSMuxer (line 30) | func NewHTTPSMuxer(listener net.Listener, timeout time.Duration) (*HTTPS... function GetHTTPSHostname (line 39) | func GetHTTPSHostname(c net.Conn) (_ net.Conn, _ map[string]string, err ... function readClientHello (line 53) | func readClientHello(reader io.Reader) (*tls.ClientHelloInfo, error) { function vhostFailed (line 73) | func vhostFailed(c net.Conn) { type readOnlyConn (line 79) | type readOnlyConn struct method Read (line 83) | func (conn readOnlyConn) Read(p []byte) (int, error) { return ... method Write (line 84) | func (conn readOnlyConn) Write(_ []byte) (int, error) { return ... method Close (line 85) | func (conn readOnlyConn) Close() error { return ... method LocalAddr (line 86) | func (conn readOnlyConn) LocalAddr() net.Addr { return ... method RemoteAddr (line 87) | func (conn readOnlyConn) RemoteAddr() net.Addr { return ... method SetDeadline (line 88) | func (conn readOnlyConn) SetDeadline(_ time.Time) error { return ... method SetReadDeadline (line 89) | func (conn readOnlyConn) SetReadDeadline(_ time.Time) error { return ... method SetWriteDeadline (line 90) | func (conn readOnlyConn) SetWriteDeadline(_ time.Time) error { return ... FILE: pkg/util/vhost/https_test.go function TestGetHTTPSHostname (line 12) | func TestGetHTTPSHostname(t *testing.T) { FILE: pkg/util/vhost/resource.go constant NotFound (line 30) | NotFound = ` function getNotFoundPageContent (line 53) | func getNotFoundPageContent() []byte { function NotFoundResponse (line 70) | func NotFoundResponse() *http.Response { FILE: pkg/util/vhost/router.go type routerByHTTPUser (line 13) | type routerByHTTPUser type Routers (line 15) | type Routers struct method Add (line 36) | func (r *Routers) Add(domain, location, httpUser string, payload any) ... method Del (line 72) | func (r *Routers) Del(domain, location, httpUser string) { method Get (line 96) | func (r *Routers) Get(host, path, httpUser string) (vr *Router, exist ... method exist (line 120) | func (r *Routers) exist(host, path, httpUser string) (route *Router, e... type Router (line 21) | type Router struct function NewRouters (line 30) | func NewRouters() *Routers { FILE: pkg/util/vhost/vhost.go type RouteInfo (line 29) | type RouteInfo constant RouteInfoKey (line 32) | RouteInfoKey RouteInfo = "routeInfo" constant RouteConfigKey (line 33) | RouteConfigKey RouteInfo = "routeConfig" type RequestRouteInfo (line 36) | type RequestRouteInfo struct type muxFunc (line 46) | type muxFunc type authFunc (line 47) | type authFunc type hostRewriteFunc (line 48) | type hostRewriteFunc type successHookFunc (line 49) | type successHookFunc type failHookFunc (line 50) | type failHookFunc type Muxer (line 56) | type Muxer struct method SetCheckAuthFunc (line 83) | func (v *Muxer) SetCheckAuthFunc(f authFunc) *Muxer { method SetSuccessHookFunc (line 88) | func (v *Muxer) SetSuccessHookFunc(f successHookFunc) *Muxer { method SetFailHookFunc (line 93) | func (v *Muxer) SetFailHookFunc(f failHookFunc) *Muxer { method SetRewriteHostFunc (line 98) | func (v *Muxer) SetRewriteHostFunc(f hostRewriteFunc) *Muxer { method Close (line 103) | func (v *Muxer) Close() error { method Listen (line 131) | func (v *Muxer) Listen(ctx context.Context, cfg *RouteConfig) (l *List... method getListener (line 150) | func (v *Muxer) getListener(name, path, httpUser string) (*Listener, b... method run (line 190) | func (v *Muxer) run() { method handle (line 200) | func (v *Muxer) handle(c net.Conn) { function NewMuxer (line 68) | func NewMuxer( type ChooseEndpointFunc (line 107) | type ChooseEndpointFunc type CreateConnFunc (line 109) | type CreateConnFunc type CreateConnByEndpointFunc (line 111) | type CreateConnByEndpointFunc type RouteConfig (line 114) | type RouteConfig struct type Listener (line 258) | type Listener struct method Accept (line 270) | func (l *Listener) Accept() (net.Conn, error) { method Close (line 292) | func (l *Listener) Close() error { method Name (line 298) | func (l *Listener) Name() string { method Addr (line 302) | func (l *Listener) Addr() net.Addr { FILE: pkg/util/wait/backoff.go type BackoffFunc (line 24) | type BackoffFunc method Backoff (line 26) | func (f BackoffFunc) Backoff(previousDuration time.Duration, previousC... type BackoffManager (line 30) | type BackoffManager interface type FastBackoffOptions (line 34) | type FastBackoffOptions struct type fastBackoffImpl (line 49) | type fastBackoffImpl struct method Backoff (line 66) | func (f *fastBackoffImpl) Backoff(previousDuration time.Duration, prev... function NewFastBackoffManager (line 59) | func NewFastBackoffManager(options FastBackoffOptions) BackoffManager { function BackoffUntil (line 115) | func BackoffUntil(f func() (bool, error), backoff BackoffManager, slidin... function Jitter (line 159) | func Jitter(duration time.Duration, maxFactor float64) time.Duration { function Until (line 167) | func Until(f func(), period time.Duration, stopCh <-chan struct{}) { FILE: pkg/util/xlog/ctx.go type key (line 21) | type key constant xlogKey (line 24) | xlogKey key = 0 function NewContext (line 27) | func NewContext(ctx context.Context, xl *Logger) context.Context { function FromContext (line 31) | func FromContext(ctx context.Context) (xl *Logger, ok bool) { function FromContextSafe (line 36) | func FromContextSafe(ctx context.Context) *Logger { FILE: pkg/util/xlog/log_writer.go type LogWriter (line 21) | type LogWriter struct method Write (line 26) | func (w LogWriter) Write(p []byte) (n int, err error) { function NewTraceWriter (line 32) | func NewTraceWriter(xl *Logger) LogWriter { function NewDebugWriter (line 39) | func NewDebugWriter(xl *Logger) LogWriter { function NewInfoWriter (line 46) | func NewInfoWriter(xl *Logger) LogWriter { function NewWarnWriter (line 53) | func NewWarnWriter(xl *Logger) LogWriter { function NewErrorWriter (line 60) | func NewErrorWriter(xl *Logger) LogWriter { FILE: pkg/util/xlog/xlog.go type LogPrefix (line 24) | type LogPrefix struct type Logger (line 34) | type Logger struct method ResetPrefixes (line 46) | func (l *Logger) ResetPrefixes() (old []LogPrefix) { method AppendPrefix (line 53) | func (l *Logger) AppendPrefix(prefix string) *Logger { method AddPrefix (line 61) | func (l *Logger) AddPrefix(prefix LogPrefix) *Logger { method renderPrefixString (line 81) | func (l *Logger) renderPrefixString() { method Spawn (line 91) | func (l *Logger) Spawn() *Logger { method Errorf (line 98) | func (l *Logger) Errorf(format string, v ...any) { method Warnf (line 102) | func (l *Logger) Warnf(format string, v ...any) { method Infof (line 106) | func (l *Logger) Infof(format string, v ...any) { method Debugf (line 110) | func (l *Logger) Debugf(format string, v ...any) { method Tracef (line 114) | func (l *Logger) Tracef(format string, v ...any) { function New (line 40) | func New() *Logger { FILE: pkg/virtual/client.go type ClientOptions (line 28) | type ClientOptions struct type Client (line 34) | type Client struct method PeerListener (line 71) | func (c *Client) PeerListener() net.Listener { method UpdateProxyConfigurer (line 75) | func (c *Client) UpdateProxyConfigurer(proxyCfgs []v1.ProxyConfigurer) { method Run (line 79) | func (c *Client) Run(ctx context.Context) error { method Service (line 83) | func (c *Client) Service() *client.Service { method Close (line 87) | func (c *Client) Close() { function NewClient (line 39) | func NewClient(options ClientOptions) (*Client, error) { type pipeConnector (line 92) | type pipeConnector struct method Open (line 96) | func (pc *pipeConnector) Open() error { method Connect (line 100) | func (pc *pipeConnector) Connect() (net.Conn, error) { method Close (line 110) | func (pc *pipeConnector) Close() error { FILE: pkg/vnet/controller.go constant maxPacketSize (line 36) | maxPacketSize = 1420 type Controller (line 39) | type Controller struct method Init (line 55) | func (c *Controller) Init() error { method Run (line 64) | func (c *Controller) Run() error { method handlePacket (line 82) | func (c *Controller) handlePacket(buf []byte) { method Stop (line 133) | func (c *Controller) Stop() error { method readLoopClient (line 141) | func (c *Controller) readLoopClient(ctx context.Context, conn io.ReadW... method readLoopServer (line 193) | func (c *Controller) readLoopServer(ctx context.Context, conn io.ReadW... method RegisterClientRoute (line 244) | func (c *Controller) RegisterClientRoute(ctx context.Context, name str... method UnregisterClientRoute (line 250) | func (c *Controller) UnregisterClientRoute(name string) { method StartServerConnReadLoop (line 256) | func (c *Controller) StartServerConnReadLoop(ctx context.Context, conn... function NewController (line 47) | func NewController(cfg v1.VirtualNetConfig) *Controller { function ParseRoutes (line 261) | func ParseRoutes(routeStrings []string) ([]net.IPNet, error) { type clientRouter (line 274) | type clientRouter struct method addRoute (line 285) | func (r *clientRouter) addRoute(name string, routes []net.IPNet, conn ... method findConn (line 295) | func (r *clientRouter) findConn(dst net.IP) (io.Writer, error) { method delRoute (line 308) | func (r *clientRouter) delRoute(name string) { method removeConnRoute (line 314) | func (r *clientRouter) removeConnRoute(conn io.Writer) { function newClientRouter (line 279) | func newClientRouter() *clientRouter { type serverRouter (line 326) | type serverRouter struct method findConnBySrc (line 337) | func (r *serverRouter) findConnBySrc(src net.IP) (io.Writer, error) { method registerSrcIP (line 347) | func (r *serverRouter) registerSrcIP(src net.IP, conn io.Writer) { method cleanupConnIPs (line 373) | func (r *serverRouter) cleanupConnIPs(conn io.Writer) { function newServerRouter (line 331) | func newServerRouter() *serverRouter { type routeElement (line 385) | type routeElement struct FILE: pkg/vnet/message.go constant maxMessageSize (line 25) | maxMessageSize = 1024 * 1024 function ReadMessage (line 31) | func ReadMessage(r io.Reader) ([]byte, error) { function WriteMessage (line 58) | func WriteMessage(w io.Writer, data []byte) error { FILE: pkg/vnet/tun.go constant offset (line 26) | offset = 16 constant defaultPacketSize (line 27) | defaultPacketSize = 1420 type TunDevice (line 30) | type TunDevice interface function OpenTun (line 34) | func OpenTun(ctx context.Context, addr string) (TunDevice, error) { type tunDeviceWrapper (line 62) | type tunDeviceWrapper struct method Read (line 70) | func (d *tunDeviceWrapper) Read(p []byte) (int, error) { method Write (line 98) | func (d *tunDeviceWrapper) Write(p []byte) (int, error) { method Close (line 107) | func (d *tunDeviceWrapper) Close() error { FILE: pkg/vnet/tun_darwin.go constant defaultTunName (line 27) | defaultTunName = "utun" constant defaultMTU (line 28) | defaultMTU = 1420 function openTun (line 31) | func openTun(_ context.Context, addr string) (tun.Device, error) { function generatePeerIP (line 65) | func generatePeerIP(ip net.IP) net.IP { function addRoutes (line 77) | func addRoutes(ifName string, routes []net.IPNet) error { FILE: pkg/vnet/tun_linux.go constant baseTunName (line 31) | baseTunName = "utun" constant defaultMTU (line 32) | defaultMTU = 1420 function openTun (line 35) | func openTun(_ context.Context, addr string) (tun.Device, error) { function findNextTunName (line 84) | func findNextTunName(basename string) (string, error) { function addRoutes (line 111) | func addRoutes(ifn *net.Interface, cidr *net.IPNet) error { function getFallbackTunName (line 124) | func getFallbackTunName(baseName, addr string) string { FILE: pkg/vnet/tun_unsupported.go function openTun (line 27) | func openTun(_ context.Context, _ string) (tun.Device, error) { FILE: server/api_router.go method registerRouteHandlers (line 27) | func (svr *Service) registerRouteHandlers(helper *httppkg.RouterRegister... function healthz (line 62) | func healthz(w http.ResponseWriter, _ *http.Request) { FILE: server/control.go type ControlManager (line 46) | type ControlManager struct method Add (line 59) | func (cm *ControlManager) Add(runID string, ctl *Control) (old *Contro... method Del (line 73) | func (cm *ControlManager) Del(runID string, ctl *Control) { method GetByID (line 81) | func (cm *ControlManager) GetByID(runID string) (ctl *Control, ok bool) { method Close (line 88) | func (cm *ControlManager) Close() error { function NewControlManager (line 53) | func NewControlManager() *ControlManager { type SessionContext (line 99) | type SessionContext struct type Control (line 122) | type Control struct method Start (line 190) | func (ctl *Control) Start() { method Close (line 207) | func (ctl *Control) Close() error { method Replaced (line 212) | func (ctl *Control) Replaced(newCtl *Control) { method RegisterWorkConn (line 219) | func (ctl *Control) RegisterWorkConn(conn net.Conn) error { method GetWorkConn (line 242) | func (ctl *Control) GetWorkConn() (workConn net.Conn, err error) { method heartbeatWorker (line 286) | func (ctl *Control) heartbeatWorker() { method WaitClosed (line 302) | func (ctl *Control) WaitClosed() { method loginUserInfo (line 306) | func (ctl *Control) loginUserInfo() plugin.UserInfo { method closeProxy (line 314) | func (ctl *Control) closeProxy(pxy proxy.Proxy) { method worker (line 330) | func (ctl *Control) worker() { method registerMsgHandlers (line 358) | func (ctl *Control) registerMsgHandlers() { method handleNewProxy (line 367) | func (ctl *Control) handleNewProxy(m msg.Message) { method handlePing (line 402) | func (ctl *Control) handlePing(m msg.Message) { method handleNatHoleVisitor (line 427) | func (ctl *Control) handleNatHoleVisitor(m msg.Message) { method handleNatHoleClient (line 432) | func (ctl *Control) handleNatHoleClient(m msg.Message) { method handleNatHoleReport (line 437) | func (ctl *Control) handleNatHoleReport(m msg.Message) { method handleCloseProxy (line 442) | func (ctl *Control) handleCloseProxy(m msg.Message) { method RegisterProxy (line 449) | func (ctl *Control) RegisterProxy(pxyMsg *msg.NewProxy) (remoteAddr st... method CloseProxy (line 526) | func (ctl *Control) CloseProxy(closeMsg *msg.CloseProxy) (err error) { function NewControl (line 160) | func NewControl(ctx context.Context, sessionCtx *SessionContext) (*Contr... FILE: server/controller/resource.go type ResourceController (line 28) | type ResourceController struct method Close (line 66) | func (rc *ResourceController) Close() error { FILE: server/group/base.go type baseGroup (line 13) | type baseGroup struct method initBase (line 26) | func (bg *baseGroup) initBase(group, groupKey string, realLn net.Liste... method worker (line 37) | func (bg *baseGroup) worker(realLn net.Listener, acceptCh chan<- net.C... method newListener (line 55) | func (bg *baseGroup) newListener(addr net.Addr) *Listener { method closeListener (line 63) | func (bg *baseGroup) closeListener(ln *Listener) { FILE: server/group/base_test.go type fakeLn (line 14) | type fakeLn struct method Accept (line 27) | func (f *fakeLn) Accept() (net.Conn, error) { method Close (line 36) | func (f *fakeLn) Close() error { method Addr (line 41) | func (f *fakeLn) Addr() net.Addr { return fakeAddr("127.0.0.1:9999") } method inject (line 43) | func (f *fakeLn) inject(c net.Conn) { function newFakeLn (line 20) | func newFakeLn() *fakeLn { function TestBaseGroup_WorkerFanOut (line 50) | func TestBaseGroup_WorkerFanOut(t *testing.T) { function TestBaseGroup_WorkerStopsOnListenerClose (line 72) | func TestBaseGroup_WorkerStopsOnListenerClose(t *testing.T) { function TestBaseGroup_WorkerClosesConnOnClosedChannel (line 91) | func TestBaseGroup_WorkerClosesConnOnClosedChannel(t *testing.T) { function TestBaseGroup_CloseLastListenerTriggersCleanup (line 121) | func TestBaseGroup_CloseLastListenerTriggersCleanup(t *testing.T) { function TestBaseGroup_CloseOneOfTwoListeners (line 141) | func TestBaseGroup_CloseOneOfTwoListeners(t *testing.T) { FILE: server/group/http.go type HTTPGroupController (line 14) | type HTTPGroupController struct method Register (line 26) | func (ctl *HTTPGroupController) Register( method UnRegister (line 42) | func (ctl *HTTPGroupController) UnRegister(proxyName, group string, _ ... function NewHTTPGroupController (line 19) | func NewHTTPGroupController(vhostRouter *vhost.Routers) *HTTPGroupContro... type HTTPGroup (line 50) | type HTTPGroup struct method Register (line 73) | func (g *HTTPGroup) Register( method UnRegister (line 118) | func (g *HTTPGroup) UnRegister(proxyName string) { method createConn (line 137) | func (g *HTTPGroup) createConn(remoteAddr string) (net.Conn, error) { method chooseEndpoint (line 160) | func (g *HTTPGroup) chooseEndpoint() (string, error) { method createConnByEndpoint (line 181) | func (g *HTTPGroup) createConnByEndpoint(endpoint, remoteAddr string) ... function NewHTTPGroup (line 65) | func NewHTTPGroup(ctl *HTTPGroupController) *HTTPGroup { FILE: server/group/https.go type HTTPSGroupController (line 24) | type HTTPSGroupController struct method Listen (line 36) | func (ctl *HTTPSGroupController) Listen( function NewHTTPSGroupController (line 29) | func NewHTTPSGroupController(httpsMuxer *vhost.HTTPSMuxer) *HTTPSGroupCo... type HTTPSGroup (line 53) | type HTTPSGroup struct method Listen (line 66) | func (g *HTTPSGroup) Listen( function NewHTTPSGroup (line 60) | func NewHTTPSGroup(ctl *HTTPSGroupController) *HTTPSGroup { FILE: server/group/listener.go type Listener (line 10) | type Listener struct method Accept (line 27) | func (ln *Listener) Accept() (net.Conn, error) { method Addr (line 39) | func (ln *Listener) Addr() net.Addr { method Close (line 43) | func (ln *Listener) Close() error { function newListener (line 18) | func newListener(acceptCh <-chan net.Conn, addr net.Addr, onClose func(*... FILE: server/group/listener_test.go function TestListener_Accept (line 11) | func TestListener_Accept(t *testing.T) { function TestListener_AcceptAfterChannelClose (line 25) | func TestListener_AcceptAfterChannelClose(t *testing.T) { function TestListener_AcceptAfterListenerClose (line 34) | func TestListener_AcceptAfterListenerClose(t *testing.T) { function TestListener_DoubleClose (line 43) | func TestListener_DoubleClose(t *testing.T) { function TestListener_Addr (line 58) | func TestListener_Addr(t *testing.T) { type fakeAddr (line 65) | type fakeAddr method Network (line 67) | func (a fakeAddr) Network() string { return "tcp" } method String (line 68) | func (a fakeAddr) String() string { return string(a) } FILE: server/group/registry.go type groupRegistry (line 9) | type groupRegistry struct function newGroupRegistry (line 14) | func newGroupRegistry[G any]() groupRegistry[G] { method getOrCreate (line 20) | func (r *groupRegistry[G]) getOrCreate(key string, newFn func() G) G { method get (line 31) | func (r *groupRegistry[G]) get(key string) (G, bool) { method isCurrent (line 40) | func (r *groupRegistry[G]) isCurrent(key string, matchFn func(G) bool) b... method removeIf (line 49) | func (r *groupRegistry[G]) removeIf(key string, fn func(G) bool) { FILE: server/group/registry_test.go function TestGetOrCreate_New (line 11) | func TestGetOrCreate_New(t *testing.T) { function TestGetOrCreate_Existing (line 20) | func TestGetOrCreate_Existing(t *testing.T) { function TestGet_ExistingAndMissing (line 31) | func TestGet_ExistingAndMissing(t *testing.T) { function TestIsCurrent (line 44) | func TestIsCurrent(t *testing.T) { function TestRemoveIf (line 55) | func TestRemoveIf(t *testing.T) { function TestConcurrentGetOrCreateAndRemoveIf (line 80) | func TestConcurrentGetOrCreateAndRemoveIf(t *testing.T) { FILE: server/group/tcp.go type TCPGroupCtl (line 25) | type TCPGroupCtl struct method Listen (line 40) | func (tgc *TCPGroupCtl) Listen(proxyName string, group string, groupKe... function NewTCPGroupCtl (line 31) | func NewTCPGroupCtl(portManager *ports.Manager) *TCPGroupCtl { type TCPGroup (line 56) | type TCPGroup struct method Listen (line 75) | func (tg *TCPGroup) Listen(proxyName string, group string, groupKey st... function NewTCPGroup (line 66) | func NewTCPGroup(ctl *TCPGroupCtl) *TCPGroup { FILE: server/group/tcpmux.go type TCPMuxGroupCtl (line 28) | type TCPMuxGroupCtl struct method Listen (line 43) | func (tmgc *TCPMuxGroupCtl) Listen( function NewTCPMuxGroupCtl (line 34) | func NewTCPMuxGroupCtl(tcpMuxHTTPConnectMuxer *tcpmux.HTTPConnectTCPMuxe... type TCPMuxGroup (line 67) | type TCPMuxGroup struct method HTTPConnectListen (line 87) | func (tmg *TCPMuxGroup) HTTPConnectListen( function NewTCPMuxGroup (line 78) | func NewTCPMuxGroup(ctl *TCPMuxGroupCtl) *TCPMuxGroup { FILE: server/http/controller.go type Controller (line 36) | type Controller struct method APIServerInfo (line 60) | func (c *Controller) APIServerInfo(ctx *httppkg.Context) (any, error) { method APIClientList (line 88) | func (c *Controller) APIClientList(ctx *httppkg.Context) (any, error) { method APIClientDetail (line 130) | func (c *Controller) APIClientDetail(ctx *httppkg.Context) (any, error) { method APIProxyByType (line 149) | func (c *Controller) APIProxyByType(ctx *httppkg.Context) (any, error) { method APIProxyByTypeAndName (line 162) | func (c *Controller) APIProxyByTypeAndName(ctx *httppkg.Context) (any,... method APIProxyTraffic (line 175) | func (c *Controller) APIProxyTraffic(ctx *httppkg.Context) (any, error) { method APIProxyByName (line 192) | func (c *Controller) APIProxyByName(ctx *httppkg.Context) (any, error) { method DeleteProxies (line 222) | func (c *Controller) DeleteProxies(ctx *httppkg.Context) (any, error) { method getProxyStatsByType (line 232) | func (c *Controller) getProxyStatsByType(proxyType string) (proxyInfos... method getProxyStatsByTypeAndName (line 257) | func (c *Controller) getProxyStatsByTypeAndName(proxyType string, prox... type ProxyManager (line 43) | type ProxyManager interface function NewController (line 47) | func NewController( function buildClientInfoResp (line 283) | func buildClientInfoResp(info registry.ClientInfo) model.ClientInfoResp { function toUnix (line 302) | func toUnix(t time.Time) int64 { function matchStatusFilter (line 309) | func matchStatusFilter(online bool, filter string) bool { function getConfFromConfigurer (line 322) | func getConfFromConfigurer(cfg v1.ProxyConfigurer) any { FILE: server/http/controller_test.go function TestGetConfFromConfigurerKeepsPluginFields (line 24) | func TestGetConfFromConfigurerKeepsPluginFields(t *testing.T) { FILE: server/http/model/types.go type ServerInfoResp (line 21) | type ServerInfoResp struct type ClientInfoResp (line 43) | type ClientInfoResp struct type BaseOutConf (line 57) | type BaseOutConf struct type TCPOutConf (line 61) | type TCPOutConf struct type TCPMuxOutConf (line 66) | type TCPMuxOutConf struct type UDPOutConf (line 73) | type UDPOutConf struct type HTTPOutConf (line 78) | type HTTPOutConf struct type HTTPSOutConf (line 85) | type HTTPSOutConf struct type STCPOutConf (line 90) | type STCPOutConf struct type XTCPOutConf (line 94) | type XTCPOutConf struct type ProxyStatsInfo (line 99) | type ProxyStatsInfo struct type GetProxyInfoResp (line 112) | type GetProxyInfoResp struct type GetProxyStatsResp (line 117) | type GetProxyStatsResp struct type GetProxyTrafficResp (line 131) | type GetProxyTrafficResp struct FILE: server/metrics/metrics.go type ServerMetrics (line 7) | type ServerMetrics interface function Register (line 22) | func Register(m ServerMetrics) { type noopServerMetrics (line 28) | type noopServerMetrics struct method NewClient (line 30) | func (noopServerMetrics) NewClient() {} method CloseClient (line 31) | func (noopServerMetrics) CloseClient() {} method NewProxy (line 32) | func (noopServerMetrics) NewProxy(string, string, string, string) {} method CloseProxy (line 33) | func (noopServerMetrics) CloseProxy(string, string) {} method OpenConnection (line 34) | func (noopServerMetrics) OpenConnection(string, string) {} method CloseConnection (line 35) | func (noopServerMetrics) CloseConnection(string, string) {} method AddTrafficIn (line 36) | func (noopServerMetrics) AddTrafficIn(string, string, int64) {} method AddTrafficOut (line 37) | func (noopServerMetrics) AddTrafficOut(string, string, int64) {} FILE: server/ports/ports.go constant MinPort (line 14) | MinPort = 1 constant MaxPort (line 15) | MaxPort = 65535 constant MaxPortReservedDuration (line 16) | MaxPortReservedDuration = time.Duration(24) * time.Hour constant CleanReservedPortsInterval (line 17) | CleanReservedPortsInterval = time.Hour type PortCtx (line 27) | type PortCtx struct type Manager (line 34) | type Manager struct method Acquire (line 71) | func (pm *Manager) Acquire(name string, port int) (realPort int, err e... method isPortAvailable (line 143) | func (pm *Manager) isPortAvailable(port int) bool { method Release (line 165) | func (pm *Manager) Release(port int) { method cleanReservedPortsWorker (line 177) | func (pm *Manager) cleanReservedPortsWorker() { function NewManager (line 44) | func NewManager(netType string, bindAddr string, allowPorts []types.Port... FILE: server/proxy/http.go function init (line 33) | func init() { type HTTPProxy (line 37) | type HTTPProxy struct method Run (line 55) | func (pxy *HTTPProxy) Run() (remoteAddr string, err error) { method GetRealConn (line 114) | func (pxy *HTTPProxy) GetRealConn(remoteAddr string) (workConn net.Con... method updateStatsAfterClosedConn (line 153) | func (pxy *HTTPProxy) updateStatsAfterClosedConn(totalRead, totalWrite... method Close (line 161) | func (pxy *HTTPProxy) Close() { function NewHTTPProxy (line 44) | func NewHTTPProxy(baseProxy *BaseProxy) Proxy { FILE: server/proxy/https.go function init (line 27) | func init() { type HTTPSProxy (line 31) | type HTTPSProxy struct method Run (line 47) | func (pxy *HTTPSProxy) Run() (remoteAddr string, err error) { method Close (line 74) | func (pxy *HTTPSProxy) Close() { method listenForDomain (line 78) | func (pxy *HTTPSProxy) listenForDomain(routeConfig *vhost.RouteConfig,... function NewHTTPSProxy (line 36) | func NewHTTPSProxy(baseProxy *BaseProxy) Proxy { FILE: server/proxy/proxy.go function RegisterProxyFactory (line 43) | func RegisterProxyFactory(proxyConfType reflect.Type, factory func(*Base... type GetWorkConnFn (line 47) | type GetWorkConnFn type Proxy (line 49) | type Proxy interface type BaseProxy (line 63) | type BaseProxy struct method GetName (line 82) | func (pxy *BaseProxy) GetName() string { method Context (line 86) | func (pxy *BaseProxy) Context() context.Context { method GetUsedPortsNum (line 90) | func (pxy *BaseProxy) GetUsedPortsNum() int { method GetResourceController (line 94) | func (pxy *BaseProxy) GetResourceController() *controller.ResourceCont... method GetUserInfo (line 98) | func (pxy *BaseProxy) GetUserInfo() plugin.UserInfo { method GetLoginMsg (line 102) | func (pxy *BaseProxy) GetLoginMsg() *msg.Login { method GetLimiter (line 106) | func (pxy *BaseProxy) GetLimiter() *rate.Limiter { method GetConfigurer (line 110) | func (pxy *BaseProxy) GetConfigurer() v1.ProxyConfigurer { method Close (line 114) | func (pxy *BaseProxy) Close() { method GetWorkConnFromPool (line 124) | func (pxy *BaseProxy) GetWorkConnFromPool(src, dst net.Addr) (workConn... method startVisitorListener (line 178) | func (pxy *BaseProxy) startVisitorListener(secretKey string, allowUser... method buildDomains (line 194) | func (pxy *BaseProxy) buildDomains(customDomains []string, subDomain s... method startCommonTCPListenersHandler (line 208) | func (pxy *BaseProxy) startCommonTCPListenersHandler() { method handleUserTCPConnection (line 244) | func (pxy *BaseProxy) handleUserTCPConnection(userConn net.Conn) { type Options (line 305) | type Options struct function NewProxy (line 316) | func NewProxy(ctx context.Context, options *Options) (pxy Proxy, err err... type Manager (line 353) | type Manager struct method Add (line 366) | func (pm *Manager) Add(name string, pxy Proxy) error { method Exist (line 377) | func (pm *Manager) Exist(name string) bool { method Del (line 384) | func (pm *Manager) Del(name string) { method GetByName (line 390) | func (pm *Manager) GetByName(name string) (pxy Proxy, ok bool) { function NewManager (line 360) | func NewManager() *Manager { FILE: server/proxy/stcp.go function init (line 23) | func init() { type STCPProxy (line 27) | type STCPProxy struct method Run (line 43) | func (pxy *STCPProxy) Run() (remoteAddr string, err error) { method Close (line 48) | func (pxy *STCPProxy) Close() { function NewSTCPProxy (line 32) | func NewSTCPProxy(baseProxy *BaseProxy) Proxy { FILE: server/proxy/sudp.go function init (line 23) | func init() { type SUDPProxy (line 27) | type SUDPProxy struct method Run (line 43) | func (pxy *SUDPProxy) Run() (remoteAddr string, err error) { method Close (line 48) | func (pxy *SUDPProxy) Close() { function NewSUDPProxy (line 32) | func NewSUDPProxy(baseProxy *BaseProxy) Proxy { FILE: server/proxy/tcp.go function init (line 26) | func init() { type TCPProxy (line 30) | type TCPProxy struct method Run (line 49) | func (pxy *TCPProxy) Run() (remoteAddr string, err error) { method Close (line 91) | func (pxy *TCPProxy) Close() { function NewTCPProxy (line 37) | func NewTCPProxy(baseProxy *BaseProxy) Proxy { FILE: server/proxy/tcpmux.go function init (line 28) | func init() { type TCPMuxProxy (line 32) | type TCPMuxProxy struct method httpConnectListen (line 48) | func (pxy *TCPMuxProxy) httpConnectListen( method httpConnectRun (line 74) | func (pxy *TCPMuxProxy) httpConnectRun() (remoteAddr string, err error) { method Run (line 90) | func (pxy *TCPMuxProxy) Run() (remoteAddr string, err error) { method Close (line 104) | func (pxy *TCPMuxProxy) Close() { function NewTCPMuxProxy (line 37) | func NewTCPMuxProxy(baseProxy *BaseProxy) Proxy { FILE: server/proxy/udp.go function init (line 37) | func init() { type UDPProxy (line 41) | type UDPProxy struct method Run (line 78) | func (pxy *UDPProxy) Run() (remoteAddr string, err error) { method Close (line 248) | func (pxy *UDPProxy) Close() { function NewUDPProxy (line 66) | func NewUDPProxy(baseProxy *BaseProxy) Proxy { FILE: server/proxy/xtcp.go function init (line 26) | func init() { type XTCPProxy (line 30) | type XTCPProxy struct method Run (line 50) | func (pxy *XTCPProxy) Run() (remoteAddr string, err error) { method Close (line 90) | func (pxy *XTCPProxy) Close() { function NewXTCPProxy (line 38) | func NewXTCPProxy(baseProxy *BaseProxy) Proxy { FILE: server/registry/registry.go type ClientInfo (line 24) | type ClientInfo struct method ClientID (line 149) | func (info ClientInfo) ClientID() string { type ClientRegistry (line 40) | type ClientRegistry struct method Register (line 54) | func (cr *ClientRegistry) Register(user, rawClientID, runID, hostname,... method MarkOfflineByRunID (line 103) | func (cr *ClientRegistry) MarkOfflineByRunID(runID string) { method List (line 125) | func (cr *ClientRegistry) List() []ClientInfo { method GetByKey (line 137) | func (cr *ClientRegistry) GetByKey(key string) (ClientInfo, bool) { method composeClientKey (line 156) | func (cr *ClientRegistry) composeClientKey(user, id string) string { function NewClientRegistry (line 46) | func NewClientRegistry() *ClientRegistry { FILE: server/service.go constant connReadTimeout (line 60) | connReadTimeout time.Duration = 10 * time.Second constant vhostReadWriteTimeout (line 61) | vhostReadWriteTimeout time.Duration = 30 * time.Second function init (line 64) | func init() { type Service (line 75) | type Service struct method Run (line 355) | func (svr *Service) Run(ctx context.Context) { method Close (line 398) | func (svr *Service) Close() error { method handleConnection (line 432) | func (svr *Service) handleConnection(ctx context.Context, conn net.Con... method HandleListener (line 498) | func (svr *Service) HandleListener(l net.Listener, internal bool) { method HandleQUICListener (line 557) | func (svr *Service) HandleQUICListener(l *quic.Listener) { method RegisterControl (line 580) | func (svr *Service) RegisterControl(ctlConn net.Conn, loginMsg *msg.Lo... method RegisterWorkConn (line 654) | func (svr *Service) RegisterWorkConn(workConn net.Conn, newMsg *msg.Ne... method RegisterVisitorConn (line 686) | func (svr *Service) RegisterVisitorConn(visitorConn net.Conn, newMsg *... function NewService (line 133) | func NewService(cfg *v1.ServerConfig) (*Service, error) { FILE: server/visitor/visitor.go type listenerBundle (line 30) | type listenerBundle struct type Manager (line 37) | type Manager struct method Listen (line 49) | func (vm *Manager) Listen(name string, sk string, allowUsers []string)... method NewConn (line 66) | func (vm *Manager) NewConn(name string, conn net.Conn, timestamp int64... method CloseListener (line 101) | func (vm *Manager) CloseListener(name string) { function NewManager (line 43) | func NewManager() *Manager { FILE: test/e2e/e2e.go function RunE2ETests (line 32) | func RunE2ETests(t *testing.T) { function setupSuite (line 55) | func setupSuite() { function setupSuitePerGinkgoNode (line 64) | func setupSuitePerGinkgoNode() { FILE: test/e2e/e2e_test.go function handleFlags (line 23) | func handleFlags() { function TestMain (line 28) | func TestMain(m *testing.M) { function TestE2E (line 41) | func TestE2E(t *testing.T) { FILE: test/e2e/framework/cleanup.go type CleanupActionHandle (line 8) | type CleanupActionHandle type cleanupFuncHandle (line 10) | type cleanupFuncHandle struct function AddCleanupAction (line 24) | func AddCleanupAction(fn func()) CleanupActionHandle { function RemoveCleanupAction (line 35) | func RemoveCleanupAction(p CleanupActionHandle) { function RunCleanupActions (line 49) | func RunCleanupActions() { FILE: test/e2e/framework/client.go method APIClientForFrpc (line 7) | func (f *Framework) APIClientForFrpc(port int) *clientsdk.Client { FILE: test/e2e/framework/consts/consts.go constant TestString (line 11) | TestString = "frp is a fast reverse proxy to help you expose a local ser... constant DefaultTimeout (line 13) | DefaultTimeout = 2 * time.Second function init (line 47) | func init() { FILE: test/e2e/framework/expect.go function ExpectEqual (line 8) | func ExpectEqual(actual any, extra any, explain ...any) { function ExpectEqualValues (line 13) | func ExpectEqualValues(actual any, extra any, explain ...any) { function ExpectEqualValuesWithOffset (line 17) | func ExpectEqualValuesWithOffset(offset int, actual any, extra any, expl... function ExpectNotEqual (line 22) | func ExpectNotEqual(actual any, extra any, explain ...any) { function ExpectError (line 27) | func ExpectError(err error, explain ...any) { function ExpectErrorWithOffset (line 31) | func ExpectErrorWithOffset(offset int, err error, explain ...any) { function ExpectNoError (line 36) | func ExpectNoError(err error, explain ...any) { function ExpectNoErrorWithOffset (line 42) | func ExpectNoErrorWithOffset(offset int, err error, explain ...any) { function ExpectContainSubstring (line 46) | func ExpectContainSubstring(actual, substr string, explain ...any) { function ExpectConsistOf (line 51) | func ExpectConsistOf(actual any, extra any, explain ...any) { function ExpectContainElements (line 55) | func ExpectContainElements(actual any, extra any, explain ...any) { function ExpectNotContainElements (line 59) | func ExpectNotContainElements(actual any, extra any, explain ...any) { function ExpectHaveKey (line 64) | func ExpectHaveKey(actual any, key any, explain ...any) { function ExpectEmpty (line 69) | func ExpectEmpty(actual any, explain ...any) { function ExpectTrue (line 73) | func ExpectTrue(actual any, explain ...any) { function ExpectTrueWithOffset (line 77) | func ExpectTrueWithOffset(offset int, actual any, explain ...any) { FILE: test/e2e/framework/framework.go type Options (line 19) | type Options struct type Framework (line 26) | type Framework struct method BeforeEach (line 87) | func (f *Framework) BeforeEach() { method AfterEach (line 111) | func (f *Framework) AfterEach() { method genPortsFromTemplates (line 174) | func (f *Framework) genPortsFromTemplates(templates []string) (ports m... method RenderTemplates (line 204) | func (f *Framework) RenderTemplates(templates []string) (outs []string... method PortByName (line 233) | func (f *Framework) PortByName(name string) int { method AllocPort (line 237) | func (f *Framework) AllocPort() int { method ReleasePort (line 244) | func (f *Framework) ReleasePort(port int) { method RunServer (line 248) | func (f *Framework) RunServer(portName string, s server.Server) { method SetEnvs (line 257) | func (f *Framework) SetEnvs(envs []string) { method WriteTempFile (line 261) | func (f *Framework) WriteTempFile(name string, content string) string { function NewDefaultFramework (line 64) | func NewDefaultFramework() *Framework { function NewFramework (line 75) | func NewFramework(opt Options) *Framework { FILE: test/e2e/framework/log.go function nowStamp (line 10) | func nowStamp() string { function log (line 14) | func log(level string, format string, args ...any) { function Logf (line 19) | func Logf(format string, args ...any) { function Failf (line 25) | func Failf(format string, args ...any) { FILE: test/e2e/framework/mockservers.go constant TCPEchoServerPort (line 16) | TCPEchoServerPort = "TCPEchoServerPort" constant UDPEchoServerPort (line 17) | UDPEchoServerPort = "UDPEchoServerPort" constant UDSEchoServerAddr (line 18) | UDSEchoServerAddr = "UDSEchoServerAddr" constant HTTPSimpleServerPort (line 19) | HTTPSimpleServerPort = "HTTPSimpleServerPort" type MockServers (line 22) | type MockServers struct method Run (line 49) | func (m *MockServers) Run() error { method Close (line 62) | func (m *MockServers) Close() { method GetTemplateParams (line 70) | func (m *MockServers) GetTemplateParams() map[string]any { method GetParam (line 79) | func (m *MockServers) GetParam(key string) any { function NewMockServers (line 29) | func NewMockServers(portAllocator *port.Allocator) *MockServers { FILE: test/e2e/framework/process.go method RunProcesses (line 19) | func (f *Framework) RunProcesses(serverTemplate string, clientTemplates ... method RunFrps (line 86) | func (f *Framework) RunFrps(args ...string) (*process.Process, string, e... method RunFrpc (line 100) | func (f *Framework) RunFrpc(args ...string) (*process.Process, string, e... method GenerateConfigFile (line 114) | func (f *Framework) GenerateConfigFile(content string) string { function waitForClientProxyReady (line 125) | func waitForClientProxyReady(configPath string, p *process.Process, time... function WaitForTCPUnreachable (line 148) | func WaitForTCPUnreachable(addr string, interval, timeout time.Duration)... function WaitForTCPReady (line 172) | func WaitForTCPReady(addr string, timeout time.Duration) error { FILE: test/e2e/framework/request.go function SpecifiedHTTPBodyHandler (line 12) | func SpecifiedHTTPBodyHandler(body []byte) http.HandlerFunc { function ExpectResponseCode (line 18) | func ExpectResponseCode(code int) EnsureFunc { function NewRequest (line 29) | func NewRequest() *request.Request { function NewHTTPRequest (line 35) | func NewHTTPRequest() *request.Request { type RequestExpect (line 39) | type RequestExpect struct method Request (line 58) | func (e *RequestExpect) Request(req *request.Request) *RequestExpect { method RequestModify (line 63) | func (e *RequestExpect) RequestModify(f func(r *request.Request)) *Req... method Protocol (line 68) | func (e *RequestExpect) Protocol(protocol string) *RequestExpect { method PortName (line 73) | func (e *RequestExpect) PortName(name string) *RequestExpect { method Port (line 80) | func (e *RequestExpect) Port(port int) *RequestExpect { method ExpectResp (line 87) | func (e *RequestExpect) ExpectResp(resp []byte) *RequestExpect { method ExpectError (line 92) | func (e *RequestExpect) ExpectError(expectErr bool) *RequestExpect { method Explain (line 97) | func (e *RequestExpect) Explain(explain ...any) *RequestExpect { method Ensure (line 104) | func (e *RequestExpect) Ensure(fns ...EnsureFunc) { method Do (line 128) | func (e *RequestExpect) Do() (*request.Response, error) { function NewRequestExpect (line 48) | func NewRequestExpect(f *Framework) *RequestExpect { type EnsureFunc (line 102) | type EnsureFunc FILE: test/e2e/framework/test_context.go type TestContextType (line 9) | type TestContextType struct function RegisterCommonFlags (line 25) | func RegisterCommonFlags(flags *flag.FlagSet) { function ValidateTestContext (line 32) | func ValidateTestContext(t *TestContextType) error { FILE: test/e2e/framework/util.go function init (line 11) | func init() { FILE: test/e2e/legacy/basic/client_server.go type generalTestConfigures (line 16) | type generalTestConfigures struct function renderBindPortConfig (line 26) | func renderBindPortConfig(protocol string) string { function runClientServerTest (line 37) | func runClientServerTest(f *framework.Framework, configures *generalTest... function defineClientServerTest (line 91) | func defineClientServerTest(desc string, f *framework.Framework, configu... FILE: test/e2e/legacy/basic/cmd.go constant ConfigValidStr (line 14) | ConfigValidStr = "syntax is ok" FILE: test/e2e/mock/server/httpserver/server.go type Server (line 11) | type Server struct method Run (line 71) | func (s *Server) Run() error { method Close (line 97) | func (s *Server) Close() error { method initListener (line 104) | func (s *Server) initListener() (err error) { method BindAddr (line 109) | func (s *Server) BindAddr() string { method BindPort (line 113) | func (s *Server) BindPort() int { type Option (line 21) | type Option function New (line 23) | func New(options ...Option) *Server { function WithBindAddr (line 34) | func WithBindAddr(addr string) Option { function WithBindPort (line 41) | func WithBindPort(port int) Option { function WithTLSConfig (line 48) | func WithTLSConfig(tlsConfig *tls.Config) Option { function WithHandler (line 55) | func WithHandler(h http.Handler) Option { function WithResponse (line 62) | func WithResponse(resp []byte) Option { FILE: test/e2e/mock/server/interface.go type Server (line 3) | type Server interface FILE: test/e2e/mock/server/oidcserver/oidcserver.go type Server (line 38) | type Server struct method Run (line 97) | func (s *Server) Run() error { method Close (line 123) | func (s *Server) Close() error { method BindAddr (line 130) | func (s *Server) BindAddr() string { return s.bindAddr } method BindPort (line 131) | func (s *Server) BindPort() int { return s.bindPort } method Issuer (line 133) | func (s *Server) Issuer() string { method TokenEndpoint (line 137) | func (s *Server) TokenEndpoint() string { method TokenRequestCount (line 142) | func (s *Server) TokenRequestCount() int64 { method handleDiscovery (line 146) | func (s *Server) handleDiscovery(w http.ResponseWriter, _ *http.Reques... method handleJWKS (line 159) | func (s *Server) handleJWKS(w http.ResponseWriter, _ *http.Request) { method handleToken (line 176) | func (s *Server) handleToken(w http.ResponseWriter, r *http.Request) { method signJWT (line 233) | func (s *Server) signJWT() (string, error) { type Option (line 56) | type Option function WithBindPort (line 58) | func WithBindPort(port int) Option { function WithClientCredentials (line 62) | func WithClientCredentials(id, secret string) Option { function WithAudience (line 69) | func WithAudience(aud string) Option { function WithSubject (line 73) | func WithSubject(sub string) Option { function WithExpiresIn (line 77) | func WithExpiresIn(seconds int) Option { function New (line 81) | func New(options ...Option) *Server { FILE: test/e2e/mock/server/streamserver/server.go type Type (line 14) | type Type constant TCP (line 17) | TCP Type = "tcp" constant UDP (line 18) | UDP Type = "udp" constant Unix (line 19) | Unix Type = "unix" type Server (line 22) | type Server struct method Run (line 76) | func (s *Server) Run() error { method Close (line 93) | func (s *Server) Close() error { method initListener (line 100) | func (s *Server) initListener() (err error) { method handle (line 114) | func (s *Server) handle(c net.Conn) { method BindAddr (line 134) | func (s *Server) BindAddr() string { method BindPort (line 138) | func (s *Server) BindPort() int { type Option (line 33) | type Option function New (line 35) | func New(netType Type, options ...Option) *Server { function WithBindAddr (line 48) | func WithBindAddr(addr string) Option { function WithBindPort (line 55) | func WithBindPort(port int) Option { function WithRespContent (line 62) | func WithRespContent(content []byte) Option { function WithCustomHandler (line 69) | func WithCustomHandler(handler func(net.Conn)) Option { FILE: test/e2e/pkg/cert/generator.go type Artifacts (line 12) | type Artifacts struct type Generator (line 26) | type Generator interface function ValidCACert (line 38) | func ValidCACert(key, cert, caCert []byte, dnsName string, time time.Tim... FILE: test/e2e/pkg/cert/selfsigned.go type SelfSignedCertGenerator (line 21) | type SelfSignedCertGenerator struct method SetCA (line 29) | func (cp *SelfSignedCertGenerator) SetCA(caKey, caCert []byte) { method Generate (line 39) | func (cp *SelfSignedCertGenerator) Generate(commonName string) (*Artif... method validCACert (line 89) | func (cp *SelfSignedCertGenerator) validCACert() (bool, *rsa.PrivateKe... function NewPrivateKey (line 116) | func NewPrivateKey() (*rsa.PrivateKey, error) { function NewSignedCert (line 121) | func NewSignedCert(cfg cert.Config, key crypto.Signer, caCert *x509.Cert... function EncodePrivateKeyPEM (line 154) | func EncodePrivateKeyPEM(key *rsa.PrivateKey) []byte { function EncodeCertPEM (line 163) | func EncodeCertPEM(ct *x509.Certificate) []byte { FILE: test/e2e/pkg/plugin/plugin.go type Handler (line 14) | type Handler type NewPluginRequest (line 16) | type NewPluginRequest function NewHTTPPluginServer (line 18) | func NewHTTPPluginServer(port int, newFunc NewPluginRequest, handler Han... FILE: test/e2e/pkg/port/port.go type Allocator (line 12) | type Allocator struct method Get (line 35) | func (pa *Allocator) Get() int { method GetByName (line 39) | func (pa *Allocator) GetByName(portName string) int { method getByRange (line 88) | func (pa *Allocator) getByRange(from, to int) int { method Release (line 104) | func (pa *Allocator) Release(port int) { function NewAllocator (line 21) | func NewAllocator(from int, to int, mod int, index int) *Allocator { FILE: test/e2e/pkg/port/util.go constant NameDelimiter (line 10) | NameDelimiter = "_" type NameOption (line 13) | type NameOption type nameBuilder (line 15) | type nameBuilder struct method String (line 46) | func (builder *nameBuilder) String() string { function unmarshalFromName (line 21) | func unmarshalFromName(name string) (*nameBuilder, error) { function WithRangePorts (line 54) | func WithRangePorts(from, to int) NameOption { function GenName (line 62) | func GenName(name string, options ...NameOption) string { FILE: test/e2e/pkg/process/process.go type SafeBuffer (line 16) | type SafeBuffer struct method Write (line 21) | func (b *SafeBuffer) Write(p []byte) (int, error) { method String (line 27) | func (b *SafeBuffer) String() string { type Process (line 33) | type Process struct method Start (line 68) | func (p *Process) Start() error { method closeDone (line 87) | func (p *Process) closeDone() { method Done (line 92) | func (p *Process) Done() <-chan struct{} { method Stop (line 96) | func (p *Process) Stop() error { method ErrorOutput (line 111) | func (p *Process) ErrorOutput() string { method StdOutput (line 115) | func (p *Process) StdOutput() string { method Output (line 119) | func (p *Process) Output() string { method CountOutput (line 124) | func (p *Process) CountOutput(pattern string) int { method SetBeforeStopHandler (line 128) | func (p *Process) SetBeforeStopHandler(fn func()) { method WaitForOutput (line 134) | func (p *Process) WaitForOutput(pattern string, count int, timeout tim... function New (line 48) | func New(path string, params []string) *Process { function NewWithEnvs (line 52) | func NewWithEnvs(path string, params []string, envs []string) *Process { FILE: test/e2e/pkg/request/request.go type Request (line 21) | type Request struct method Protocol (line 54) | func (r *Request) Protocol(protocol string) *Request { method TCP (line 59) | func (r *Request) TCP() *Request { method UDP (line 64) | func (r *Request) UDP() *Request { method HTTP (line 69) | func (r *Request) HTTP() *Request { method HTTPS (line 74) | func (r *Request) HTTPS() *Request { method Proxy (line 79) | func (r *Request) Proxy(url string) *Request { method Addr (line 84) | func (r *Request) Addr(addr string) *Request { method Port (line 89) | func (r *Request) Port(port int) *Request { method HTTPParams (line 94) | func (r *Request) HTTPParams(method, host, path string, headers map[st... method HTTPHost (line 102) | func (r *Request) HTTPHost(host string) *Request { method HTTPPath (line 107) | func (r *Request) HTTPPath(path string) *Request { method HTTPHeaders (line 112) | func (r *Request) HTTPHeaders(headers map[string]string) *Request { method HTTPAuth (line 117) | func (r *Request) HTTPAuth(user, password string) *Request { method TLSConfig (line 122) | func (r *Request) TLSConfig(tlsConfig *tls.Config) *Request { method Timeout (line 127) | func (r *Request) Timeout(timeout time.Duration) *Request { method Body (line 132) | func (r *Request) Body(content []byte) *Request { method Resolver (line 137) | func (r *Request) Resolver(resolver *net.Resolver) *Request { method Do (line 142) | func (r *Request) Do() (*Response, error) { method sendHTTPRequest (line 203) | func (r *Request) sendHTTPRequest(method, urlstr string, host string, ... method sendRequestByConn (line 257) | func (r *Request) sendRequestByConn(c net.Conn, content []byte) ([]byt... function New (line 43) | func New() *Request { type Response (line 197) | type Response struct FILE: test/e2e/pkg/rpc/rpc.go function WriteBytes (line 11) | func WriteBytes(w io.Writer, buf []byte) (int, error) { function ReadBytes (line 21) | func ReadBytes(r io.Reader) ([]byte, error) { FILE: test/e2e/pkg/ssh/client.go type TunnelClient (line 10) | type TunnelClient struct method Start (line 27) | func (c *TunnelClient) Start() error { method Close (line 63) | func (c *TunnelClient) Close() { method serveListener (line 72) | func (c *TunnelClient) serveListener() { method handleConn (line 82) | func (c *TunnelClient) handleConn(conn net.Conn) { function NewTunnelClient (line 19) | func NewTunnelClient(localAddr string, sshServer string, commands string... FILE: test/e2e/suites.go function CleanupSuite (line 7) | func CleanupSuite() { function AfterSuiteActions (line 12) | func AfterSuiteActions() { FILE: test/e2e/v1/basic/client_server.go type generalTestConfigures (line 16) | type generalTestConfigures struct function renderBindPortConfig (line 26) | func renderBindPortConfig(protocol string) string { function runClientServerTest (line 37) | func runClientServerTest(f *framework.Framework, configures *generalTest... function defineClientServerTest (line 93) | func defineClientServerTest(desc string, f *framework.Framework, configu... FILE: test/e2e/v1/basic/cmd.go constant ConfigValidStr (line 14) | ConfigValidStr = "syntax is ok" FILE: web/frpc/components.d.ts type GlobalComponents (line 9) | interface GlobalComponents { type ComponentCustomProperties (line 44) | interface ComponentCustomProperties { FILE: web/frpc/embed.go function init (line 14) | func init() { FILE: web/frpc/src/api/http.ts class HTTPError (line 3) | class HTTPError extends Error { method constructor (line 7) | constructor(status: number, statusText: string, message?: string) { function request (line 14) | async function request(url: string, options: RequestInit = {}): Promi... FILE: web/frpc/src/composables/useResponsive.ts function useResponsive (line 5) | function useResponsive() { FILE: web/frpc/src/types/constants.ts constant PROXY_TYPES (line 1) | const PROXY_TYPES = [ type ProxyType (line 12) | type ProxyType = (typeof PROXY_TYPES)[number] constant VISITOR_TYPES (line 14) | const VISITOR_TYPES = ['stcp', 'sudp', 'xtcp'] as const type VisitorType (line 16) | type VisitorType = (typeof VISITOR_TYPES)[number] constant PLUGIN_TYPES (line 18) | const PLUGIN_TYPES = [ type PluginType (line 32) | type PluginType = (typeof PLUGIN_TYPES)[number] FILE: web/frpc/src/types/proxy-converters.ts function formToStoreProxy (line 10) | function formToStoreProxy(form: ProxyFormData): ProxyDefinition { function formToStoreVisitor (line 170) | function formToStoreVisitor(form: VisitorFormData): VisitorDefinition { function getStoreProxyBlock (line 233) | function getStoreProxyBlock(config: ProxyDefinition): Record { function withStoreProxyBlock (line 254) | function withStoreProxyBlock( function getStoreVisitorBlock (line 288) | function getStoreVisitorBlock(config: VisitorDefinition): Record FILE: web/frpc/src/types/proxy-store.ts type ProxyDefinition (line 3) | interface ProxyDefinition { type VisitorDefinition (line 16) | interface VisitorDefinition { type ProxyListResp (line 24) | interface ProxyListResp { type VisitorListResp (line 28) | interface VisitorListResp { FILE: web/frpc/src/utils/format.ts function formatDistanceToNow (line 1) | function formatDistanceToNow(date: Date): string { function formatFileSize (line 22) | function formatFileSize(bytes: number): string { FILE: web/frps/components.d.ts type GlobalComponents (line 9) | interface GlobalComponents { type ComponentCustomProperties (line 29) | interface ComponentCustomProperties { FILE: web/frps/embed.go function init (line 14) | func init() { FILE: web/frps/src/api/http.ts class HTTPError (line 3) | class HTTPError extends Error { method constructor (line 7) | constructor(status: number, statusText: string, message?: string) { function request (line 14) | async function request(url: string, options: RequestInit = {}): Promi... FILE: web/frps/src/composables/useResponsive.ts function useResponsive (line 5) | function useResponsive() { FILE: web/frps/src/router/index.ts method scrollBehavior (line 10) | scrollBehavior() { FILE: web/frps/src/types/client.ts type ClientInfoData (line 1) | interface ClientInfoData { FILE: web/frps/src/types/proxy.ts type ProxyStatsInfo (line 1) | interface ProxyStatsInfo { type GetProxyResponse (line 14) | interface GetProxyResponse { type TrafficResponse (line 18) | interface TrafficResponse { FILE: web/frps/src/types/server.ts type ServerInfo (line 1) | interface ServerInfo { FILE: web/frps/src/utils/client.ts class Client (line 4) | class Client { method constructor (line 18) | constructor(data: ClientInfoData) { method displayName (line 40) | get displayName(): string { method shortRunId (line 47) | get shortRunId(): string { method firstConnectedAgo (line 51) | get firstConnectedAgo(): string { method lastConnectedAgo (line 55) | get lastConnectedAgo(): string { method disconnectedAgo (line 59) | get disconnectedAgo(): string { method statusColor (line 64) | get statusColor(): string { method metasArray (line 68) | get metasArray(): Array<{ key: string; value: string }> { method matchesFilter (line 76) | matchesFilter(searchText: string): boolean { FILE: web/frps/src/utils/format.ts function formatDistanceToNow (line 1) | function formatDistanceToNow(date: Date): string { function formatFileSize (line 22) | function formatFileSize(bytes: number): string { FILE: web/frps/src/utils/proxy.ts class BaseProxy (line 1) | class BaseProxy { method constructor (line 27) | constructor(proxyStats: any) { class TCPProxy (line 63) | class TCPProxy extends BaseProxy { method constructor (line 64) | constructor(proxyStats: any) { class UDPProxy (line 77) | class UDPProxy extends BaseProxy { method constructor (line 78) | constructor(proxyStats: any) { class HTTPProxy (line 91) | class HTTPProxy extends BaseProxy { method constructor (line 92) | constructor(proxyStats: any, port: number, subdomainHost: string) { class HTTPSProxy (line 107) | class HTTPSProxy extends BaseProxy { method constructor (line 108) | constructor(proxyStats: any, port: number, subdomainHost: string) { class TCPMuxProxy (line 121) | class TCPMuxProxy extends BaseProxy { method constructor (line 122) | constructor(proxyStats: any, port: number, subdomainHost: string) { class STCPProxy (line 138) | class STCPProxy extends BaseProxy { method constructor (line 139) | constructor(proxyStats: any) { class SUDPProxy (line 145) | class SUDPProxy extends BaseProxy { method constructor (line 146) | constructor(proxyStats: any) {