portprober

package
v0.31.0 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2024 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrPortDiscoveryFailed = errors.New("port discovery probes failed")
	ErrParseFailed         = errors.New("failed to parse discovered port response")
	ErrValidationFailed    = errors.New("failed to validate discovered port response")
)

Functions

This section is empty.

Types

type Opts

type Opts struct {
	Offsets []int
}

type PortProber

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

func New

func New(
	opts Opts,
	validate *validator.Validate,
	clock clockwork.Clock,
	metrics *metrics.Collector,
	logger *zerolog.Logger,
) PortProber

func (PortProber) HandleFailure

func (p PortProber) HandleFailure(svr server.Server) server.Server

func (PortProber) HandleRetry

func (p PortProber) HandleRetry(svr server.Server) server.Server

func (PortProber) HandleSuccess

func (p PortProber) HandleSuccess(res any, svr server.Server) server.Server

func (PortProber) Probe

func (p PortProber) Probe(
	ctx context.Context,
	svrAddr addr.Addr,
	_ int,
	timeout time.Duration,
) (any, error)

Probe attempts to discover a query port for a given server address. To discover the query port, several ports are tried: public port +1, +2 and so forth. In case when multiple query ports are available, the preferred port would be selected according to this order: gs1 mod, admin mod, vanilla response.

type Result

type Result struct {
	Details details.Details
	Port    int
}
var NoResult Result

Jump to

Keyboard shortcuts

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