proxy

package
v1.0.8 Latest Latest
Warning

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

Go to latest
Published: May 13, 2021 License: GPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxPacketSize = 1024 * 8
)
View Source
const Name = "PROXY"

Variables

View Source
var EmptyConfigData = ConfigData{[]byte("{}"), true}

Functions

func CreateClientStack

func CreateClientStack(ctx context.Context, clientStack []string) (tunnel.Client, error)

CreateClientStack create client tunnel stacks from lists

func CreateServerStack

func CreateServerStack(ctx context.Context, serverStack []string) (tunnel.Server, error)

CreateServerStack create server tunnel stack from list

func FindAllEndpoints

func FindAllEndpoints(root *Node) []tunnel.Server

func RegisterProxyCreator

func RegisterProxyCreator(name string, creator Creator)

Types

type Config

type Config struct {
	RunType     string `json:"run_type" yaml:"run-type"`
	LogLevel    int    `json:"log_level" yaml:"log-level"`
	LogFile     string `json:"log_file" yaml:"log-file"`
	MonitorPort int    `json:"monitor_port" yaml:"monitor-port"`
}

type ConfigData

type ConfigData struct {
	Data   []byte
	IsJSON bool
}

func ReadConfigData

func ReadConfigData(path string) (*ConfigData, error)

type Creator

type Creator func(ctx context.Context) (*Proxy, error)

type Node

type Node struct {
	Name       string
	Next       map[string]*Node
	IsEndpoint bool
	context.Context
	tunnel.Server
	tunnel.Client
}

func (*Node) BuildNext

func (n *Node) BuildNext(name string) *Node

func (*Node) LinkNextNode

func (n *Node) LinkNextNode(next *Node) *Node

type Option

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

func (*Option) Handle

func (o *Option) Handle() error

func (*Option) Name

func (o *Option) Name() string

func (*Option) Priority

func (o *Option) Priority() int

type Proxy

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

Proxy relay connections and packets

func NewProxy

func NewProxy(ctx context.Context, cancel context.CancelFunc, sources []tunnel.Server, sink tunnel.Client, direct tunnel.Client) *Proxy

func NewProxyFromConfigData

func NewProxyFromConfigData(configData *ConfigData, dconfigData *ConfigData) (*Proxy, error)

func (*Proxy) Close

func (p *Proxy) Close() error

func (*Proxy) Run

func (p *Proxy) Run() error

type StdinOption

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

func (*StdinOption) Handle

func (o *StdinOption) Handle() error

func (*StdinOption) Name

func (o *StdinOption) Name() string

func (*StdinOption) Priority

func (o *StdinOption) Priority() int

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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