udp

package
v2.51.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2017 License: MIT Imports: 16 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 added in v1.24.2

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 dispatcher.Interface) *Dispatcher

func (*Dispatcher) Dispatch

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

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, option ListenOption) (*Hub, error)

func (*Hub) Addr

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

func (*Hub) Close

func (h *Hub) Close()

func (*Hub) WriteTo

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

type ListenOption added in v1.24.2

type ListenOption struct {
	Callback            PayloadHandler
	ReceiveOriginalDest bool
	Concurrency         int
}

type Payload

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

Payload represents a single UDP payload.

type PayloadHandler

type PayloadHandler func(payload *buf.Buffer, source net.Destination, originalDest net.Destination)

PayloadHandler is function to handle Payload.

type PayloadQueue

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

PayloadQueue is a queue of Payload.

func NewPayloadQueue

func NewPayloadQueue(option ListenOption) *PayloadQueue

NewPayloadQueue returns a new PayloadQueue.

func (*PayloadQueue) Close

func (q *PayloadQueue) Close()

func (*PayloadQueue) Dequeue

func (q *PayloadQueue) Dequeue(queue <-chan Payload)

func (*PayloadQueue) Enqueue

func (q *PayloadQueue) Enqueue(payload Payload)

Enqueue adds the payload to the end of this queue.

type ResponseCallback

type ResponseCallback func(payload *buf.Buffer)

Jump to

Keyboard shortcuts

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