tun4go

package module
v0.0.0-...-29ef87b Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2021 License: GPL-3.0 Imports: 9 Imported by: 0

README

tun4go

tunnel protocols for golang

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterProvider

func RegisterProvider(provider Provider)

RegisterProvider .

Types

type Approver

type Approver interface {
	Approve(context []byte) bool
}

Approver .

type Params

type Params map[string]string

Params Tunnel initialize parameters

type Provider

type Provider interface {
	// Provider name
	Name() string

	// Create Tunnel from context bytes
	FromContext(context []byte) (Tunnel, error)

	// Create new tunnel with initialized context
	New(params Params) (Tunnel, error)
}

Provider Tunnel protocol provider

type Transport

type Transport interface {
	Read() ([]byte, error)
	Write([]byte) error
}

Transport underlying transport protocol

type Tunnel

type Tunnel interface {
	// Send encrypt msg and send through provide transport
	Send(msg []byte, transport Transport) error

	// Recv recv msg through provide transport and decrypt
	Recv(transport Transport) ([]byte, error)

	// Disconnect send disconnect msg to peer
	Disconnect(transport Transport) error

	// Connect send connect msg to peer if need
	Connect(transport Transport) error

	// Get tunnel marshable context
	Context() ([]byte, error)
}

Tunnel tunnel protocol object

func FromContext

func FromContext(name string, context []byte) (Tunnel, error)

FromContext create tunnel with context

func New

func New(name string, params Params) (Tunnel, error)

New create new tunnel

type TunnelCloser

type TunnelCloser interface {
	Tunnel
	Close() error
}

TunnelCloser Tunnel object with close function

Directories

Path Synopsis
provider
wc

Jump to

Keyboard shortcuts

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