tunnel

package
v1.31.1 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2023 License: GPL-3.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	UDPFallbackMatch  = atomic.NewBool(false)
	UDPFallbackPolicy = atomic.NewString("")
)
View Source
var ModeMapping = map[string]TunnelMode{
	Global.String(): Global,
	Rule.String():   Rule,
	Script.String(): Script,
	Direct.String(): Direct,
}

ModeMapping is a mapping for Mode enum

Functions

func FetchRawProxyAdapter

func FetchRawProxyAdapter(proxy C.Proxy, metadata *C.Metadata) (C.Proxy, []string)

func FindProxyByName

func FindProxyByName(name string) (proxy C.Proxy, found bool)

func Providers

func Providers() map[string]provider.ProxyProvider

Providers return all compatible providers

func Proxies

func Proxies() map[string]C.Proxy

Proxies return all proxies

func Rewrites

func Rewrites() C.RewriteRule

Rewrites return all rewrites

func Rules

func Rules() []C.Rule

Rules return all rules

func SetMitmOutbound

func SetMitmOutbound(outbound C.ProxyAdapter)

SetMitmOutbound set the MITM outbound

func SetMode

func SetMode(m TunnelMode)

SetMode change the mode of tunnel

func SetSniffing

func SetSniffing(s bool)

func Sniffing

func Sniffing() bool

func TCPIn

func TCPIn() chan<- C.ConnContext

TCPIn return fan-in queue

func UDPIn

func UDPIn() chan<- *inbound.PacketAdapter

UDPIn return fan-in udp queue

func UpdateProxies

func UpdateProxies(newProxies map[string]C.Proxy, newProviders map[string]provider.ProxyProvider)

UpdateProxies handle update proxies

func UpdateRewrites

func UpdateRewrites(hosts *trie.DomainTrie[bool], rules C.RewriteRule)

UpdateRewrites handle update rewrites

func UpdateRules

func UpdateRules(newRules []C.Rule)

UpdateRules handle update rules

func UpdateScript

func UpdateScript(providers map[string]C.Rule, matcher C.Matcher)

UpdateScript update script config

Types

type TunnelMode

type TunnelMode int
const (
	Global TunnelMode = iota
	Rule
	Script
	Direct
)

func Mode

func Mode() TunnelMode

Mode return current mode

func (TunnelMode) MarshalJSON

func (m TunnelMode) MarshalJSON() ([]byte, error)

MarshalJSON serialize Mode

func (TunnelMode) MarshalObject

func (m TunnelMode) MarshalObject(e *log.Entry)

func (TunnelMode) MarshalYAML

func (m TunnelMode) MarshalYAML() (any, error)

MarshalYAML serialize TunnelMode with yaml

func (TunnelMode) String

func (m TunnelMode) String() string

func (*TunnelMode) UnmarshalJSON

func (m *TunnelMode) UnmarshalJSON(data []byte) error

UnmarshalJSON unserialize Mode

func (*TunnelMode) UnmarshalYAML

func (m *TunnelMode) UnmarshalYAML(unmarshal func(any) error) error

UnmarshalYAML unserialize Mode with yaml

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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