Documentation ¶
Overview ¶
Package relay holds low-level primitives for proxying streams to a WireGuard interface. The package can later be abstracted to support other proxying mechanisms.
Index ¶
Constants ¶
View Source
const DefaultUDPBuffer = 1024 * 1024 * 4
DefaultUDPBuffer is the default buffer size to use for UDP relays.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LocalUDP ¶
LocalUDP is a local UDP relay.
func (*LocalUDP) Closed ¶
func (r *LocalUDP) Closed() <-chan struct{}
Closed returns a channel that is closed when the relay is closed.
type Relay ¶
type Relay interface { // Relay proxies data to and from the given stream. Relay(ctx context.Context, from io.ReadWriteCloser) error // LocalAddr returns the local address of the relay. LocalAddr() netip.AddrPort // Closed returns a channel that is closed when the relay is closed. Closed() <-chan struct{} // Close closes the relay. Close() error }
Relay is a generic interface for proxying read-write streams between each other.
func NewLocalUDP ¶
func NewLocalUDP(opts UDPOptions) (Relay, error)
NewLocalUDP creates a new UDP relay listening on the given port and proxying traffic to the listener on the given target port.
type UDPOptions ¶
type UDPOptions struct { // TargetPort is the port to proxy traffic to. TargetPort uint16 // BufferSize is the size of the buffer to use for copying data. // If 0, DefaultUDPBuffer will be used. BufferSize int }
UDPOptions are generic options for a UDP relay.
Click to show internal directories.
Click to hide internal directories.