tunnel

package
v0.0.0-...-317432a Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2024 License: GPL-3.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const MapStringRule = "map-string-rule"

const MapDomainRule = "map-domain-rule" const MapIPRule = "map-domain-rule"

Variables

View Source
var (
	//Cm *concurrent_map.ConcurrentMap
	//Cm     = CMAP.New()
	//Cm = CC.New(CC.Configure().MaxSize(1024 * 128).ItemsToPrune(500).Buckets(1024 * 128 / 64))
	//Dm = CC.New(CC.Configure().MaxSize(1024 * 128).ItemsToPrune(500).Buckets(1024 * 128 / 64))
	Cm, _ = ristretto.NewCache(&ristretto.Config{
		NumCounters: 1e7,
		MaxCost:     1 << 28,
		BufferItems: 64,
	})
	Dm, _ = ristretto.NewCache(&ristretto.Config{
		NumCounters: 1e7,
		MaxCost:     1 << 28,
		BufferItems: 64,
	})
)
View Source
var (
	// ModeMapping is a mapping for Mode enum
	ModeMapping = map[string]TunnelMode{
		Global.String(): Global,
		Rule.String():   Rule,
		Direct.String(): Direct,
	}
)

Functions

func AddStrRule

func AddStrRule(key string, value string)

func CloseRuleMatchCon

func CloseRuleMatchCon(rule C.Rule)

func DeleteStrRule

func DeleteStrRule(key string)

func DnsPreCache

func DnsPreCache(domain string, ip string, remote net.Addr, ttl uint32)

func GetnatPC

func GetnatPC(key string) C.PacketConn

func LoadRule

func LoadRule(rules []C.Rule) []C.Rule

func LoadStrRule

func LoadStrRule() []C.Rule

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 Rules

func Rules() []C.Rule

Rules return all rules

func SetMode

func SetMode(m TunnelMode)

SetMode change the mode of tunnel

func TCPIn

func TCPIn() chan<- C.ConnContext

TCPIn return fan-in queue

func TrimArr

func TrimArr(arr []string) (r []string)

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 UpdateRules

func UpdateRules(newRules []C.Rule)

UpdateRules handle update rules

Types

type IdleTimeoutConn

type IdleTimeoutConn struct {
	Conn    net.Conn
	Timeout time.Duration
}

type ReadOnlyReader

type ReadOnlyReader struct {
	io.Reader
}

type TunnelMode

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

func Mode

func Mode() TunnelMode

Mode return current mode

func (TunnelMode) MarshalJSON

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

MarshalJSON serialize Mode

func (TunnelMode) MarshalYAML

func (m TunnelMode) MarshalYAML() (interface{}, 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(interface{}) error) error

UnmarshalYAML unserialize Mode with yaml

type WriteOnlyWriter

type WriteOnlyWriter struct {
	io.Writer
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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