Documentation ¶
Index ¶
- func ReadUDPMsg(conn *net.UDPConn, payload []byte, oob []byte) (int, int, int, *net.UDPAddr, error)
- func RetrieveOriginalDest(oob []byte) v2net.Destination
- func SetOriginalDestOptions(fd int) error
- type Hub
- type ListenOption
- type Payload
- type PayloadHandler
- type PayloadQueue
- type ResponseCallback
- type Server
- type TimedInboundRay
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ReadUDPMsg ¶ added in v1.24.4
func RetrieveOriginalDest ¶ added in v1.24.2
func RetrieveOriginalDest(oob []byte) v2net.Destination
Types ¶
type Hub ¶
func ListenUDP ¶
func (*Hub) Connection ¶
Connection return the net.Conn underneath this hub. Private: Visible for testing only
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(*buf.Buffer, *proxy.SessionInfo)
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(destination v2net.Destination, payload *buf.Buffer)
type Server ¶
func NewServer ¶
func NewServer(packetDispatcher dispatcher.PacketDispatcher) *Server
func (*Server) Dispatch ¶
func (v *Server) Dispatch(session *proxy.SessionInfo, payload *buf.Buffer, callback ResponseCallback)
type TimedInboundRay ¶
func NewTimedInboundRay ¶
func NewTimedInboundRay(name string, inboundRay ray.InboundRay, server *Server) *TimedInboundRay
func (*TimedInboundRay) InboundInput ¶
func (v *TimedInboundRay) InboundInput() ray.OutputStream
func (*TimedInboundRay) InboundOutput ¶
func (v *TimedInboundRay) InboundOutput() ray.InputStream
func (*TimedInboundRay) Monitor ¶
func (v *TimedInboundRay) Monitor()
func (*TimedInboundRay) Release ¶
func (v *TimedInboundRay) Release()
Click to show internal directories.
Click to hide internal directories.