peermap

package
v0.6.4 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2024 License: GPL-3.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAddressAlreadyInuse  = peer.Error{Code: 4000, Msg: "the network address is already in use"}
	ErrNetworkSecretExpired = peer.Error{Code: 4030, Msg: "network secret is expired"}
)

Functions

This section is empty.

Types

type Config

type Config struct {
	Listen               string                    `yaml:"listen"`
	SecretKey            string                    `yaml:"secret_key"`
	STUNs                []string                  `yaml:"stuns"`
	PublicNetwork        string                    `yaml:"public_network"`
	OIDCProviders        []oidc.OIDCProviderConfig `yaml:"oidc_providers"`
	RateLimiter          *RateLimiterConfig        `yaml:"rate_limiter,omitempty"`
	SecretRotationPeriod time.Duration             `yaml:"secret_rotation_period"`
	SecretValidityPeriod time.Duration             `yaml:"secret_validity_period"`
	StateFile            string                    `yaml:"state_file"`
}

func ReadConfig

func ReadConfig(configFile string) (cfg Config, err error)

func (*Config) Overwrite

func (cfg *Config) Overwrite(cfg1 Config)

type NetState added in v0.5.5

type NetState struct {
	ID         string    `json:"id"`
	Alias      string    `json:"alias"`
	Neighbors  []string  `json:"neighbors"`
	CreateTime time.Time `json:"createTime"`
	UpdateTime time.Time `json:"updateTime"`
}

type Peer

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

func (*Peer) Close added in v0.2.3

func (p *Peer) Close() error

func (*Peer) Read added in v0.2.4

func (p *Peer) Read(b []byte) (n int, err error)

func (*Peer) Start

func (p *Peer) Start()

func (*Peer) String

func (p *Peer) String() string

func (*Peer) Write added in v0.2.4

func (p *Peer) Write(b []byte) (n int, err error)

type PeerMap

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

func New

func New(cfg Config) (*PeerMap, error)

func (*PeerMap) FindPeer

func (pm *PeerMap) FindPeer(network string, filter func(url.Values) bool) ([]*Peer, error)

func (*PeerMap) HandleGetNetworkMeta added in v0.5.5

func (pm *PeerMap) HandleGetNetworkMeta(w http.ResponseWriter, r *http.Request)

func (*PeerMap) HandleOIDCAuthorize added in v0.2.4

func (pm *PeerMap) HandleOIDCAuthorize(w http.ResponseWriter, r *http.Request)

func (*PeerMap) HandlePeerPacketConnect added in v0.2.4

func (pm *PeerMap) HandlePeerPacketConnect(w http.ResponseWriter, r *http.Request)

func (*PeerMap) HandlePutNetworkMeta added in v0.5.5

func (pm *PeerMap) HandlePutNetworkMeta(w http.ResponseWriter, r *http.Request)

func (*PeerMap) HandleQueryNetworkPeers added in v0.2.4

func (pm *PeerMap) HandleQueryNetworkPeers(w http.ResponseWriter, r *http.Request)

func (*PeerMap) HandleQueryNetworks added in v0.2.4

func (pm *PeerMap) HandleQueryNetworks(w http.ResponseWriter, r *http.Request)

func (*PeerMap) Load added in v0.5.5

func (pm *PeerMap) Load() error

Load networks state

func (*PeerMap) Save added in v0.5.5

func (pm *PeerMap) Save() error

Save networks state

func (*PeerMap) Serve

func (pm *PeerMap) Serve(ctx context.Context) error

type RateLimiter

type RateLimiter struct {
	Limit int `yaml:"limit"`
	Burst int `yaml:"burst"`
}

type RateLimiterConfig added in v0.6.3

type RateLimiterConfig struct {
	Limit   int         `yaml:"limit"`
	Burst   int         `yaml:"burst"`
	Relay   RateLimiter `yaml:"relay"`
	StreamR RateLimiter `yaml:"stream_r"`
	StreamW RateLimiter `yaml:"stream_w"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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