salty

package
v0.0.0-...-53e2619 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2023 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	None = iota + 1
	ServerHello
	ClientHello
	ClientAuth
	ServerAuth
)

STATES

View Source
const (
	DebugLevel = 0

	InfoLevel   = 10
	InfoLevel11 = 11 // enable timestamp
	InfoLevel12 = 12 // enable caller
	InfoLevel13 = 13 // enable caller and timestamp

	WarnLevel = 20

	ErrorLevel = 30

	PanicLevel    = 40
	DPanicLevel45 = 45

	FatalLevel = 50
)

Logging levels

View Source
const (
	// MaxJobs ..
	MaxJobs = 32
	// MaxWorkers ..
	MaxWorkers = 8
)

Variables

View Source
var (
	// ErrOverflowSentinel ..
	ErrOverflowSentinel = errors.New("OverflowSentinel")
	// ErrInvalidOverflowNumber ..
	ErrInvalidOverflowNumber = errors.New("Invalid overflow number")
	// ErrNotExpectedCsn ..
	ErrNotExpectedCsn = errors.New("unexpected sequence number")
)
View Source
var CloseFrameDropByInitiator = compileCloseFrame(prot.CloseCodeDropByInitiator, "")

CloseFrameDropByInitiator //

View Source
var CloseFrameGoingAway = compileCloseFrame(prot.CloseCodeGoingAway, "")

CloseFrameGoingAway //

View Source
var CloseFrameHandover = compileCloseFrame(prot.CloseCodeHandover, "")

CloseFrameHandover //

View Source
var CloseFrameInitiatorCouldNotDecrypt = compileCloseFrame(prot.CloseCodeInitiatorCouldNotDecrypt, "")

CloseFrameInitiatorCouldNotDecrypt //

View Source
var CloseFrameInternalError = compileCloseFrame(prot.CloseCodeInternalError, "")

CloseFrameInternalError //

View Source
var CloseFrameInvalidKey = compileCloseFrame(prot.CloseCodeInvalidKey, "")

CloseFrameInvalidKey //

View Source
var CloseFrameNoSharedTasks = compileCloseFrame(prot.CloseCodeNoSharedTasks, "")

CloseFrameNoSharedTasks //

View Source
var CloseFrameNormalClosure = compileCloseFrame(prot.CloseCodeNormalClosure, "")

CloseFrameNormalClosure //

View Source
var CloseFramePathFullError = compileCloseFrame(prot.CloseCodePathFullError, "")

CloseFramePathFullError //

View Source
var CloseFrameProtocolError = compileCloseFrame(prot.CloseCodeProtocolError, "")

CloseFrameProtocolError //

View Source
var CloseFrameSubprotocolError = compileCloseFrame(prot.CloseCodeSubprotocolError, "")

CloseFrameSubprotocolError //

View Source
var CloseFrameTimeout = compileCloseFrame(prot.CloseCodeTimeout, "")

CloseFrameTimeout //

View Source
var Logger *zap.Logger

Logger ..

Sugar ..

Functions

func InitLogger

func InitLogger(level int)

InitLogger ..

Types

type Client

type Client struct {
	ClientKey          [nacl.NaclKeyBytesSize]byte
	ServerSessionBox   *nacl.BoxKeyPair
	ServerPermanentBox *nacl.BoxKeyPair
	CookieOut          []byte

	CombinedSequenceNumberOut *CombinedSequenceNumber
	CombinedSequenceNumberIn  *CombinedSequenceNumber

	Authenticated bool
	ID            prot.AddressType

	Path   *Path
	Server *Server
	State  int
	// contains filtered or unexported fields
}

Client ..

func NewClient

func NewClient(conn *Conn, clientKey [prot.KeyBytesSize]byte, permanentBox, sessionBox *nacl.BoxKeyPair) (*Client, error)

NewClient ..

func (*Client) DelFromPath

func (c *Client) DelFromPath()

DelFromPath ..

func (*Client) Disconnected

func (c *Client) Disconnected() (err error)

Disconnected ..

func (*Client) GetCookieIn

func (c *Client) GetCookieIn() []byte

GetCookieIn ..

func (*Client) GetType

func (c *Client) GetType() (prot.AddressType, bool)

GetType ..

func (*Client) Pack

func (c *Client) Pack(h prot.Header, pm prot.PayloadMarshaler) ([]byte, error)

Pack ..

func (*Client) Received

func (c *Client) Received(b []byte)

Received ..

func (*Client) SetType

func (c *Client) SetType(t prot.AddressType)

SetType ..

func (*Client) Unpack

func (c *Client) Unpack(data []byte) (msg interface{}, err error)

Unpack ..

type CombinedSequenceNumber

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

CombinedSequenceNumber ..

func NewCombinedSequenceNumber

func NewCombinedSequenceNumber(initialSequenceNum uint32) *CombinedSequenceNumber

NewCombinedSequenceNumber ..

func ParseCombinedSequenceNumber

func ParseCombinedSequenceNumber(csnBytes []byte) (*CombinedSequenceNumber, error)

ParseCombinedSequenceNumber ..

func (*CombinedSequenceNumber) AsBytes

func (csn *CombinedSequenceNumber) AsBytes() ([]byte, error)

AsBytes gets csn as bytes

func (*CombinedSequenceNumber) EqualsTo

func (csn *CombinedSequenceNumber) EqualsTo(targetCsn *CombinedSequenceNumber) bool

EqualsTo ..

func (*CombinedSequenceNumber) GetOverflowNumber

func (csn *CombinedSequenceNumber) GetOverflowNumber() uint16

GetOverflowNumber ..

func (*CombinedSequenceNumber) GetSequenceNumber

func (csn *CombinedSequenceNumber) GetSequenceNumber() uint32

GetSequenceNumber ..

func (*CombinedSequenceNumber) HasErrOverflowSentinel

func (csn *CombinedSequenceNumber) HasErrOverflowSentinel() bool

HasErrOverflowSentinel ..

func (*CombinedSequenceNumber) Increment

func (csn *CombinedSequenceNumber) Increment() error

Increment increase csn one

func (*CombinedSequenceNumber) WillHaveErrOverflowSentinel

func (csn *CombinedSequenceNumber) WillHaveErrOverflowSentinel() bool

WillHaveErrOverflowSentinel states if the next csn will have ErrOverflowSentinel

func (*CombinedSequenceNumber) Write

func (csn *CombinedSequenceNumber) Write(w io.Writer) error

type Conn

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

Conn ..

func (*Conn) Close

func (c *Conn) Close(preWrite []byte) error

Close ..

func (*Conn) Read

func (c *Conn) Read(p []byte) (int, error)

Read ..

func (*Conn) Write

func (c *Conn) Write(p []byte) (int, error)

Write ..

type Path

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

Path ..

func NewPath

func NewPath(key string, number uint32) *Path

NewPath ..

func (*Path) AddResponder

func (p *Path) AddResponder(c *Client) (prot.AddressType, error)

AddResponder ..

func (*Path) Del

func (p *Path) Del(id prot.AddressType)

Del ..

func (*Path) Get

func (p *Path) Get(id prot.AddressType) (*Client, bool)

Get ..

func (*Path) GetInitiator

func (p *Path) GetInitiator() (*Client, bool)

GetInitiator ..

func (*Path) Iter

func (p *Path) Iter() <-chan hm.KeyValue

Iter ..

func (*Path) SetInitiator

func (p *Path) SetInitiator(c *Client)

SetInitiator ..

func (*Path) Walk

func (p *Path) Walk(cb func(c *Client))

Walk ..

type Paths

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

Paths stores path instances

func NewPaths

func NewPaths() *Paths

NewPaths creates new Paths instance

func (*Paths) GetOrCreate

func (paths *Paths) GetOrCreate(key string) (*Path, bool)

GetOrCreate ..

func (*Paths) Prune

func (paths *Paths) Prune(p *Path)

Prune ..

type Server

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

Server handles clients

func NewServer

func NewServer(permanentBox nacl.BoxKeyPair) *Server

NewServer creates new server instance

func (*Server) Start

func (s *Server) Start(addr string) error

Start runs the server

func (*Server) Write

func (s *Server) Write(c *Conn, data []byte, ctx interface{}, cb func(ctx interface{}, err error))

Write ..

func (*Server) WriteCtrl

func (s *Server) WriteCtrl(c *Conn, data []byte) error

WriteCtrl ..

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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