udp

package
v3.37.4+incompatible Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2018 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReadUDPMsg

func ReadUDPMsg(conn *net.UDPConn, payload []byte, oob []byte) (int, int, int, *net.UDPAddr, error)

func RetrieveOriginalDest

func RetrieveOriginalDest(oob []byte) net.Destination

func SetOriginalDestOptions

func SetOriginalDestOptions(fd int) error

func TransmitSocket

func TransmitSocket(src net.Addr, dst net.Addr) (net.Conn, error)

Currently, Only IPv4 Forge is supported

Types

type Dispatcher

type Dispatcher struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewDispatcher

func NewDispatcher(dispatcher core.Dispatcher, callback ResponseCallback) *Dispatcher

func (*Dispatcher) Dispatch

func (v *Dispatcher) Dispatch(ctx context.Context, destination net.Destination, payload *buf.Buffer)

func (*Dispatcher) RemoveRay

func (v *Dispatcher) RemoveRay(dest net.Destination)

type Hub

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

func ListenUDP

func ListenUDP(address net.Address, port net.Port, options ...HubOption) (*Hub, error)

func (*Hub) Addr

func (h *Hub) Addr() net.Addr

Addr implements net.Listener.

func (*Hub) Close

func (h *Hub) Close() error

Close implements net.Listener.

func (*Hub) Receive

func (h *Hub) Receive() <-chan *Payload

func (*Hub) WriteTo

func (h *Hub) WriteTo(payload []byte, dest net.Destination) (int, error)

type HubOption

type HubOption func(h *Hub)

func HubCapacity

func HubCapacity(cap int) HubOption

func HubReceiveOriginalDestination

func HubReceiveOriginalDestination(r bool) HubOption

type Payload

type Payload struct {
	Content             *buf.Buffer
	Source              net.Destination
	OriginalDestination net.Destination
}

Payload represents a single UDP payload.

type ResponseCallback

type ResponseCallback func(ctx context.Context, payload *buf.Buffer)

Jump to

Keyboard shortcuts

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