libbox

package
v1.3.1-beta.1 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2023 License: GPL-2.0 Imports: 60 Imported by: 6

Documentation

Index

Constants

View Source
const (
	CommandLog int32 = iota
	CommandStatus
	CommandServiceReload
	CommandCloseConnections
	CommandGroup
	CommandSelectOutbound
	CommandURLTest
)

Variables

This section is empty.

Functions

func CheckConfig added in v1.2.3

func CheckConfig(configContent string) error

func FormatBytes

func FormatBytes(length int64) string

func FormatConfig added in v1.2.3

func FormatConfig(configContent string) (string, error)

func RedirectStderr added in v1.2.4

func RedirectStderr(path string) error

func RedirectStderrAsUser added in v1.3.0

func RedirectStderrAsUser(path string, uid, gid int) error

func RegisterLocalDNSTransport added in v1.3.0

func RegisterLocalDNSTransport(transport LocalDNSTransport)

func Setup added in v1.3.0

func Setup(basePath string, tempPath string, userID int, groupID int)

func Version

func Version() string

Types

type BoxService

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

func NewService

func NewService(configContent string, platformInterface PlatformInterface) (*BoxService, error)

func (*BoxService) Close

func (s *BoxService) Close() error

func (*BoxService) Start

func (s *BoxService) Start() error

type CommandClient added in v1.2.3

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

func NewCommandClient added in v1.2.3

func NewCommandClient(sharedDirectory string, handler CommandClientHandler, options *CommandClientOptions) *CommandClient

func NewStandaloneCommandClient added in v1.3.3

func NewStandaloneCommandClient(sharedDirectory string) *CommandClient

func (*CommandClient) CloseConnections added in v1.3.3

func (c *CommandClient) CloseConnections() error

func (*CommandClient) Connect added in v1.2.3

func (c *CommandClient) Connect() error

func (*CommandClient) Disconnect added in v1.2.3

func (c *CommandClient) Disconnect() error

func (*CommandClient) SelectOutbound added in v1.3.3

func (c *CommandClient) SelectOutbound(groupTag string, outboundTag string) error

func (*CommandClient) ServiceReload added in v1.3.3

func (c *CommandClient) ServiceReload() error

func (*CommandClient) URLTest added in v1.3.3

func (c *CommandClient) URLTest(groupTag string) error

type CommandClientHandler added in v1.2.3

type CommandClientHandler interface {
	Connected()
	Disconnected(message string)
	WriteLog(message string)
	WriteStatus(message *StatusMessage)
	WriteGroups(message OutboundGroupIterator)
}

type CommandClientOptions added in v1.2.3

type CommandClientOptions struct {
	Command        int32
	StatusInterval int64
}

type CommandServer added in v1.2.3

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

func NewCommandServer added in v1.2.3

func NewCommandServer(sharedDirectory string, handler CommandServerHandler, maxLines int32) *CommandServer

func (*CommandServer) Close added in v1.2.3

func (s *CommandServer) Close() error

func (*CommandServer) SetService added in v1.3.3

func (s *CommandServer) SetService(newService *BoxService)

func (*CommandServer) Start added in v1.2.3

func (s *CommandServer) Start() error

func (*CommandServer) WriteMessage added in v1.2.3

func (s *CommandServer) WriteMessage(message string)

type CommandServerHandler added in v1.2.3

type CommandServerHandler interface {
	ServiceReload() error
}

type ExchangeContext added in v1.3.0

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

func (*ExchangeContext) ErrnoCode added in v1.3.0

func (c *ExchangeContext) ErrnoCode(code int32)

func (*ExchangeContext) ErrorCode added in v1.3.0

func (c *ExchangeContext) ErrorCode(code int32)

func (*ExchangeContext) OnCancel added in v1.3.0

func (c *ExchangeContext) OnCancel(callback Func)

func (*ExchangeContext) RawSuccess added in v1.3.0

func (c *ExchangeContext) RawSuccess(result []byte)

func (*ExchangeContext) Success added in v1.3.0

func (c *ExchangeContext) Success(result string)

type Func added in v1.3.0

type Func interface {
	Invoke() error
}

type HTTPClient added in v1.2.3

type HTTPClient interface {
	RestrictedTLS()
	ModernTLS()
	PinnedTLS12()
	PinnedSHA256(sumHex string)
	TrySocks5(port int32)
	KeepAlive()
	NewRequest() HTTPRequest
	Close()
}

func NewHTTPClient added in v1.2.3

func NewHTTPClient() HTTPClient

type HTTPRequest added in v1.2.3

type HTTPRequest interface {
	SetURL(link string) error
	SetMethod(method string)
	SetHeader(key string, value string)
	SetContent(content []byte)
	SetContentString(content string)
	RandomUserAgent()
	SetUserAgent(userAgent string)
	Execute() (HTTPResponse, error)
}

type HTTPResponse added in v1.2.3

type HTTPResponse interface {
	GetContent() ([]byte, error)
	GetContentString() (string, error)
	WriteTo(path string) error
}

type InterfaceUpdateListener added in v1.2.5

type InterfaceUpdateListener interface {
	UpdateDefaultInterface(interfaceName string, interfaceIndex int32)
}

type LocalDNSTransport added in v1.3.0

type LocalDNSTransport interface {
	Raw() bool
	Lookup(ctx *ExchangeContext, network string, domain string) error
	Exchange(ctx *ExchangeContext, message []byte) error
}

type NetworkInterface added in v1.2.5

type NetworkInterface struct {
	Index     int32
	MTU       int32
	Name      string
	Addresses StringIterator
}

type NetworkInterfaceIterator added in v1.2.5

type NetworkInterfaceIterator interface {
	Next() *NetworkInterface
	HasNext() bool
}

type OnDemandRule

type OnDemandRule interface {
	Target() int32
	DNSSearchDomainMatch() StringIterator
	DNSServerAddressMatch() StringIterator
	InterfaceTypeMatch() int32
	SSIDMatch() StringIterator
	ProbeURL() string
}

type OnDemandRuleIterator

type OnDemandRuleIterator interface {
	Next() OnDemandRule
	HasNext() bool
}

type OutboundGroup added in v1.3.3

type OutboundGroup struct {
	Tag        string
	Type       string
	Selectable bool
	Selected   string
	// contains filtered or unexported fields
}

func (*OutboundGroup) GetItems added in v1.3.3

type OutboundGroupItem added in v1.3.3

type OutboundGroupItem struct {
	Tag          string
	Type         string
	URLTestTime  int64
	URLTestDelay int32
}

type OutboundGroupItemIterator added in v1.3.3

type OutboundGroupItemIterator interface {
	Next() *OutboundGroupItem
	HasNext() bool
}

type OutboundGroupIterator added in v1.3.3

type OutboundGroupIterator interface {
	Next() *OutboundGroup
	HasNext() bool
}

type PProfServer

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

func NewPProfServer

func NewPProfServer(port int) *PProfServer

func (*PProfServer) Close

func (s *PProfServer) Close() error

func (*PProfServer) Start

func (s *PProfServer) Start() error

type PlatformInterface

type PlatformInterface interface {
	UsePlatformAutoDetectInterfaceControl() bool
	AutoDetectInterfaceControl(fd int32) error
	OpenTun(options TunOptions) (int32, error)
	WriteLog(message string)
	UseProcFS() bool
	FindConnectionOwner(ipProtocol int32, sourceAddress string, sourcePort int32, destinationAddress string, destinationPort int32) (int32, error)
	PackageNameByUid(uid int32) (string, error)
	UIDByPackageName(packageName string) (int32, error)
	UsePlatformDefaultInterfaceMonitor() bool
	StartDefaultInterfaceMonitor(listener InterfaceUpdateListener) error
	CloseDefaultInterfaceMonitor(listener InterfaceUpdateListener) error
	UsePlatformInterfaceGetter() bool
	GetInterfaces() (NetworkInterfaceIterator, error)
	UnderNetworkExtension() bool
}

type RoutePrefix

type RoutePrefix struct {
	Address string
	Prefix  int32
}

func (*RoutePrefix) Mask

func (p *RoutePrefix) Mask() string

type RoutePrefixIterator

type RoutePrefixIterator interface {
	Next() *RoutePrefix
	HasNext() bool
}

type StatusMessage added in v1.2.3

type StatusMessage struct {
	Memory      int64
	Goroutines  int32
	Connections int32
}

type StringIterator

type StringIterator interface {
	Next() string
	HasNext() bool
}

type TunInterface

type TunInterface interface {
	FileDescriptor() int32
	Close() error
}

type TunOptions

type TunOptions interface {
	GetInet4Address() RoutePrefixIterator
	GetInet6Address() RoutePrefixIterator
	GetDNSServerAddress() (string, error)
	GetMTU() int32
	GetAutoRoute() bool
	GetStrictRoute() bool
	GetInet4RouteAddress() RoutePrefixIterator
	GetInet6RouteAddress() RoutePrefixIterator
	GetIncludePackage() StringIterator
	GetExcludePackage() StringIterator
	IsHTTPProxyEnabled() bool
	GetHTTPProxyServer() string
	GetHTTPProxyServerPort() int32
}

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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