mux

package
v3.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package mux multiplexes packets on a single socket (RFC7983)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MatchAll

func MatchAll([]byte) bool

MatchAll always returns true

func MatchDTLS

func MatchDTLS(b []byte) bool

MatchDTLS is a MatchFunc that accepts packets with the first byte in [20..63] as defied in RFC7983

func MatchRange

func MatchRange(lower, upper byte, buf []byte) bool

MatchRange returns true if the first byte of buf is in [lower..upper]

func MatchSRTCP

func MatchSRTCP(buf []byte) bool

MatchSRTCP is a MatchFunc that only matches SRTCP and not SRTP

func MatchSRTP

func MatchSRTP(buf []byte) bool

MatchSRTP is a MatchFunc that only matches SRTP and not SRTCP

func MatchSRTPOrSRTCP

func MatchSRTPOrSRTCP(b []byte) bool

MatchSRTPOrSRTCP is a MatchFunc that accepts packets with the first byte in [128..191] as defied in RFC7983

Types

type Config

type Config struct {
	Conn          net.Conn
	BufferSize    int
	LoggerFactory logging.LoggerFactory
}

Config collects the arguments to mux.Mux construction into a single structure

type Endpoint

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

Endpoint implements net.Conn. It is used to read muxed packets.

func (*Endpoint) Close

func (e *Endpoint) Close() (err error)

Close unregisters the endpoint from the Mux

func (*Endpoint) LocalAddr

func (e *Endpoint) LocalAddr() net.Addr

LocalAddr is a stub

func (*Endpoint) Read

func (e *Endpoint) Read(p []byte) (int, error)

Read reads a packet of len(p) bytes from the underlying conn that are matched by the associated MuxFunc

func (*Endpoint) ReadFrom

func (e *Endpoint) ReadFrom(p []byte) (int, net.Addr, error)

ReadFrom reads a packet of len(p) bytes from the underlying conn that are matched by the associated MuxFunc

func (*Endpoint) RemoteAddr

func (e *Endpoint) RemoteAddr() net.Addr

RemoteAddr is a stub

func (*Endpoint) SetDeadline

func (e *Endpoint) SetDeadline(time.Time) error

SetDeadline is a stub

func (*Endpoint) SetOnClose

func (e *Endpoint) SetOnClose(onClose func())

SetOnClose is a user set callback that will be executed when `Close` is called

func (*Endpoint) SetReadDeadline

func (e *Endpoint) SetReadDeadline(time.Time) error

SetReadDeadline is a stub

func (*Endpoint) SetWriteDeadline

func (e *Endpoint) SetWriteDeadline(time.Time) error

SetWriteDeadline is a stub

func (*Endpoint) Write

func (e *Endpoint) Write(p []byte) (int, error)

Write writes len(p) bytes to the underlying conn

func (*Endpoint) WriteTo

func (e *Endpoint) WriteTo(p []byte, _ net.Addr) (int, error)

WriteTo writes len(p) bytes to the underlying conn

type MatchFunc

type MatchFunc func([]byte) bool

MatchFunc allows custom logic for mapping packets to an Endpoint

type Mux

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

Mux allows multiplexing

func NewMux

func NewMux(config Config) *Mux

NewMux creates a new Mux

func (*Mux) Close

func (m *Mux) Close() error

Close closes the Mux and all associated Endpoints.

func (*Mux) NewEndpoint

func (m *Mux) NewEndpoint(f MatchFunc) *Endpoint

NewEndpoint creates a new Endpoint

func (*Mux) RemoveEndpoint

func (m *Mux) RemoveEndpoint(e *Endpoint)

RemoveEndpoint removes an endpoint from the Mux

Jump to

Keyboard shortcuts

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