udp

package
v2.19.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2017 License: MIT Imports: 13 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) v2net.Destination

func SetOriginalDestOptions

func SetOriginalDestOptions(fd int) error

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 v2net.Destination, payload *buf.Buffer, callback ResponseCallback)

func (*Dispatcher) RemoveRay

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

type Hub

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

func ListenUDP

func ListenUDP(address v2net.Address, port v2net.Port, option ListenOption) (*Hub, error)

func (*Hub) Addr

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

func (*Hub) Close

func (v *Hub) Close()

func (*Hub) Connection

func (v *Hub) Connection() net.Conn

Connection returns the net.Conn underneath this hub. Private: Visible for testing only

func (*Hub) WriteTo

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

type ListenOption

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 v2net.Destination, originalDest v2net.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 (v *PayloadQueue) Close()

func (*PayloadQueue) Dequeue

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

func (*PayloadQueue) Enqueue

func (v *PayloadQueue) Enqueue(payload Payload)

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