server

package
v1.72.0-rc Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2023 License: AGPL-3.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const NoiseHeader = "DRPC!N!1"

NoiseHeader is the drpcmigrate.Header prefix for DRPC over Noise.

Variables

View Source
var (

	// Error is a pkg/server error.
	Error = errs.Class("server")
)

Functions

func GenerateNoiseKeyAttestation added in v1.72.2

func GenerateNoiseKeyAttestation(ctx context.Context, ident *identity.FullIdentity, info *pb.NoiseInfo) (_ *pb.NoiseKeyAttestation, err error)

GenerateNoiseKeyAttestation will sign a given Noise public key using the Node's leaf key and certificate chain, generating a pb.NoiseKeyAttestation.

func GenerateNoiseSessionAttestation added in v1.72.2

func GenerateNoiseSessionAttestation(ctx context.Context, ident *identity.FullIdentity, handshakeHash []byte) (_ *pb.NoiseSessionAttestation, err error)

GenerateNoiseSessionAttestation will sign a given Noise session handshake hash using the Node's leaf key and certificate chain, generating a pb.NoiseSessionAttestation.

func NewPrefixedListener added in v1.63.1

func NewPrefixedListener(prefix []byte, listener net.Listener) net.Listener

NewPrefixedListener creates a new PrefixedListener.

func ValidateNoiseKeyAttestation added in v1.72.2

func ValidateNoiseKeyAttestation(ctx context.Context, attestation *pb.NoiseKeyAttestation) (err error)

ValidateNoiseKeyAttestation will confirm that a provided *pb.NoiseKeyAttestation was signed correctly.

func ValidateNoiseSessionAttestation added in v1.72.2

func ValidateNoiseSessionAttestation(ctx context.Context, attestation *pb.NoiseSessionAttestation) (err error)

ValidateNoiseSessionAttestation will confirm that a provided *pb.NoiseSessionAttestation was signed correctly.

Types

type Config

type Config struct {
	tlsopts.Config
	Address        string `user:"true" help:"public address to listen on" default:":7777"`
	PrivateAddress string `user:"true" help:"private address to listen on" default:"127.0.0.1:7778"`
	DisableQUIC    bool   `help:"disable QUIC listener on a server" hidden:"true" default:"false"`

	DisableTCP      bool `help:"disable TCP listener on a server" internal:"true"`
	DebugLogTraffic bool `hidden:"true" default:"false"` // Deprecated

	TCPFastOpen      bool `help:"enable support for tcp fast open experiment" default:"true"`
	TCPFastOpenQueue int  `help:"the size of the tcp fast open queue" default:"256"`
}

Config holds server specific configuration parameters.

type PrefixedListener added in v1.63.1

type PrefixedListener struct {
	net.Listener
	// contains filtered or unexported fields
}

PrefixedListener injects prefix bytes to the beginning of every new connection.

func (*PrefixedListener) Accept added in v1.63.1

func (p *PrefixedListener) Accept() (net.Conn, error)

Accept implements function of net.Listener.

type Server

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

Server represents a bundle of services defined by a specific ID. Examples of servers are the satellite, the storagenode, and the uplink.

func New

func New(log *zap.Logger, tlsOptions *tlsopts.Options, config Config) (_ *Server, err error)

New creates a Server out of an Identity, a net.Listener, and interceptors.

func (*Server) AddHTTPFallback added in v1.63.1

func (p *Server) AddHTTPFallback(httpHandler http.HandlerFunc)

AddHTTPFallback adds http fallback to the drpc endpoint.

func (*Server) Addr

func (p *Server) Addr() net.Addr

Addr returns the server's public listener address.

func (*Server) Close

func (p *Server) Close() error

Close shuts down the server.

func (*Server) DRPC

func (p *Server) DRPC() drpc.Mux

DRPC returns the server's DRPC mux for registration purposes.

func (*Server) Identity

func (p *Server) Identity() *identity.FullIdentity

Identity returns the server's identity.

func (*Server) IsQUICEnabled added in v1.47.3

func (p *Server) IsQUICEnabled() bool

IsQUICEnabled checks if QUIC is enabled by config and udp port is open.

func (*Server) NoiseInfo added in v1.72.2

func (p *Server) NoiseInfo() *pb.NoiseInfo

NoiseInfo returns the noise configuration for this server. This includes the keypair in use.

func (*Server) NoiseKeyAttestation added in v1.72.2

func (p *Server) NoiseKeyAttestation(ctx context.Context) (_ *pb.NoiseKeyAttestation, err error)

NoiseKeyAttestation returns the noise key attestation for this server.

func (*Server) PrivateAddr

func (p *Server) PrivateAddr() net.Addr

PrivateAddr returns the server's private listener address.

func (*Server) PrivateDRPC

func (p *Server) PrivateDRPC() drpc.Mux

PrivateDRPC returns the server's DRPC mux for registration purposes.

func (*Server) Run

func (p *Server) Run(ctx context.Context) (err error)

Run will run the server and all of its services.

Jump to

Keyboard shortcuts

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