mux

package
v0.0.0-...-a188101 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2019 License: Apache-2.0, MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OptionData  bitmask.Byte = 0x01
	OptionError bitmask.Byte = 0x02
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

func NewClient

func NewClient(pctx context.Context, p proxy.Outbound, dialer proxy.Dialer, m *ClientManager) (*Client, error)

NewClient creates a new mux.Client.

func (*Client) Closed

func (m *Client) Closed() bool

Closed returns true if this Client is closed.

func (*Client) Dispatch

func (m *Client) Dispatch(ctx context.Context, link *core.Link) bool

type ClientManager

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

func (*ClientManager) Dispatch

func (m *ClientManager) Dispatch(ctx context.Context, link *core.Link) error

type FrameMetadata

type FrameMetadata struct {
	Target        net.Destination
	SessionID     uint16
	Option        bitmask.Byte
	SessionStatus SessionStatus
}

func ReadFrameFrom

func ReadFrameFrom(b *buf.Buffer) (*FrameMetadata, error)

ReadFrameFrom reads a FrameMetadata from the given buffer. Visible for testing only.

func ReadMetadata

func ReadMetadata(reader io.Reader) (*FrameMetadata, error)

ReadMetadata reads FrameMetadata from the given reader.

func (FrameMetadata) WriteTo

func (f FrameMetadata) WriteTo(b *buf.Buffer) error

type PacketReader

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

PacketReader is an io.Reader that reads whole chunk of Mux frames every time.

func NewPacketReader

func NewPacketReader(reader io.Reader) *PacketReader

NewPacketReader creates a new PacketReader.

func (*PacketReader) ReadMultiBuffer

func (r *PacketReader) ReadMultiBuffer() (buf.MultiBuffer, error)

ReadMultiBuffer implements buf.Reader.

type Server

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

func NewServer

func NewServer(ctx context.Context) *Server

NewServer creates a new mux.Server.

func (*Server) Close

func (s *Server) Close() error

Close implements common.Closable.

func (*Server) Dispatch

func (s *Server) Dispatch(ctx context.Context, dest net.Destination) (*core.Link, error)

func (*Server) Start

func (s *Server) Start() error

Start implements common.Runnable.

type ServerWorker

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

type Session

type Session struct {
	ID uint16
	// contains filtered or unexported fields
}

Session represents a client connection in a Mux connection.

func (*Session) Close

func (s *Session) Close() error

Close closes all resources associated with this session.

func (*Session) NewReader

func (s *Session) NewReader(reader *buf.BufferedReader) buf.Reader

NewReader creates a buf.Reader based on the transfer type of this Session.

type SessionManager

type SessionManager struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewSessionManager

func NewSessionManager() *SessionManager

func (*SessionManager) Add

func (m *SessionManager) Add(s *Session)

func (*SessionManager) Allocate

func (m *SessionManager) Allocate() *Session

func (*SessionManager) Close

func (m *SessionManager) Close() error

func (*SessionManager) CloseIfNoSession

func (m *SessionManager) CloseIfNoSession() bool

func (*SessionManager) Count

func (m *SessionManager) Count() int

func (*SessionManager) Get

func (m *SessionManager) Get(id uint16) (*Session, bool)

func (*SessionManager) Remove

func (m *SessionManager) Remove(id uint16)

func (*SessionManager) Size

func (m *SessionManager) Size() int

type SessionStatus

type SessionStatus byte
const (
	SessionStatusNew       SessionStatus = 0x01
	SessionStatusKeep      SessionStatus = 0x02
	SessionStatusEnd       SessionStatus = 0x03
	SessionStatusKeepAlive SessionStatus = 0x04
)

type StreamReader

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

StreamReader reads Mux frame as a stream.

func NewStreamReader

func NewStreamReader(reader *buf.BufferedReader) *StreamReader

NewStreamReader creates a new StreamReader.

func (*StreamReader) ReadMultiBuffer

func (r *StreamReader) ReadMultiBuffer() (buf.MultiBuffer, error)

ReadMultiBuffer implmenets buf.Reader.

type TargetNetwork

type TargetNetwork byte
const (
	TargetNetworkTCP TargetNetwork = 0x01
	TargetNetworkUDP TargetNetwork = 0x02
)

type Writer

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

func NewResponseWriter

func NewResponseWriter(id uint16, writer buf.Writer, transferType protocol.TransferType) *Writer

func NewWriter

func NewWriter(id uint16, dest net.Destination, writer buf.Writer, transferType protocol.TransferType) *Writer

func (*Writer) Close

func (w *Writer) Close() error

Close implements common.Closable.

func (*Writer) WriteMultiBuffer

func (w *Writer) WriteMultiBuffer(mb buf.MultiBuffer) error

WriteMultiBuffer implements buf.Writer.

Jump to

Keyboard shortcuts

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