controller

package
v1.9.0 Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2023 License: MPL-2.0 Imports: 33 Imported by: 0

Documentation

Overview

Package controller Package generate the InboundConfig used by add inbound

Index

Constants

This section is empty.

Variables

Functions

func InboundBuilder

func InboundBuilder(config *Config, nodeInfo *api.NodeInfo, tag string) (*core.InboundHandlerConfig, error)

InboundBuilder build Inbound config for different protocol

func OutboundBuilder

func OutboundBuilder(config *Config, nodeInfo *api.NodeInfo, tag string) (*core.OutboundHandlerConfig, error)

OutboundBuilder build freedom outbound config for addOutbound

Types

type Config

type Config struct {
	ListenIP                  string              `mapstructure:"ListenIP"`
	SendIP                    string              `mapstructure:"SendIP"`
	UpdatePeriodic            int                 `mapstructure:"UpdatePeriodic"`
	DeviceOnlineMinTraffic    int                 `mapstructure:"DeviceOnlineMinTraffic"`
	CertConfig                *mylego.CertConfig  `mapstructure:"CertConfig"`
	EnableDNS                 bool                `mapstructure:"EnableDNS"`
	DNSType                   string              `mapstructure:"DNSType"`
	DisableUploadTraffic      bool                `mapstructure:"DisableUploadTraffic"`
	DisableGetRule            bool                `mapstructure:"DisableGetRule"`
	EnableProxyProtocol       bool                `mapstructure:"EnableProxyProtocol"`
	DisableIVCheck            bool                `mapstructure:"DisableIVCheck"`
	DisableSniffing           bool                `mapstructure:"DisableSniffing"`
	DynamicSpeedConfig        *DynamicSpeedConfig `mapstructure:"DynamicSpeedConfig"`
	DisableLocalREALITYConfig bool                `mapstructure:"DisableLocalREALITYConfig"`
	EnableREALITY             bool                `mapstructure:"EnableREALITY"`
	REALITYConfigs            *REALITYConfig      `mapstructure:"REALITYConfigs"`
}

type Controller

type Controller struct {
	Tag string
	// contains filtered or unexported fields
}

func New

func New(server *core.Instance, api api.API, config *Config, panelType string) *Controller

New return a Controller service with default parameters.

func (*Controller) AddInboundLimiter

func (c *Controller) AddInboundLimiter(tag string, nodeSpeedLimit uint64, userList *[]api.UserInfo) error

func (*Controller) Close

func (c *Controller) Close() error

Close implement the Close() function of the service interface

func (*Controller) DeleteInboundLimiter

func (c *Controller) DeleteInboundLimiter(tag string) error

func (*Controller) GetDetectResult

func (c *Controller) GetDetectResult(tag string) (*[]api.DetectResult, error)

func (*Controller) GetOnlineDevice

func (c *Controller) GetOnlineDevice(tag string) (*[]api.OnlineUser, error)

func (*Controller) Start

func (c *Controller) Start() error

Start implement the Start() function of the service interface

func (*Controller) UpdateInboundLimiter

func (c *Controller) UpdateInboundLimiter(tag string, updatedUserList *[]api.UserInfo) error

func (*Controller) UpdateRule

func (c *Controller) UpdateRule(tag string, newRuleList []api.DetectRule) error

type DynamicSpeedConfig

type DynamicSpeedConfig struct {
	Limit         int `mapstructure:"Limit"` // mbps
	WarnTimes     int `mapstructure:"WarnTimes"`
	LimitSpeed    int `mapstructure:"LimitSpeed"`    // mbps
	LimitDuration int `mapstructure:"LimitDuration"` // minute
}

type LimitInfo

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

type REALITYConfig

type REALITYConfig struct {
	Show             bool     `mapstructure:"Show"`
	Dest             string   `mapstructure:"Dest"`
	ProxyProtocolVer uint64   `mapstructure:"ProxyProtocolVer"`
	ServerNames      []string `mapstructure:"ServerNames"`
	PrivateKey       string   `mapstructure:"PrivateKey"`
	MinClientVer     string   `mapstructure:"MinClientVer"`
	MaxClientVer     string   `mapstructure:"MaxClientVer"`
	MaxTimeDiff      uint64   `mapstructure:"MaxTimeDiff"`
	ShortIds         []string `mapstructure:"ShortIds"`
}

Jump to

Keyboard shortcuts

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