mirror of
https://github.com/qdm12/gluetun.git
synced 2026-05-07 04:20:12 +02:00
4a78989d9d
- main reason being it's a burden to always define sentinel errors at global scope, wrap them with `%w` instead of using a string directly - only use sentinel errors when it has to be checked using `errors.Is` - replace all usage of these sentinel errors in `fmt.Errorf` with direct strings that were in the sentinel error - exclude the sentinel error definition requirement from .golangci.yml - update unit tests to use ContainersError instead of ErrorIs so it stays as a "not a change detector test" without requiring a sentinel error
40 lines
901 B
Go
40 lines
901 B
Go
package common
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"net/netip"
|
|
|
|
"github.com/qdm12/gluetun/internal/models"
|
|
"github.com/qdm12/gluetun/internal/updater/resolver"
|
|
)
|
|
|
|
var (
|
|
ErrNotEnoughServers = errors.New("not enough servers found")
|
|
ErrCredentialsMissing = errors.New("credentials are missing")
|
|
)
|
|
|
|
type Fetcher interface {
|
|
FetchServers(ctx context.Context, minServers int) (servers []models.Server, err error)
|
|
}
|
|
|
|
type ParallelResolver interface {
|
|
Resolve(ctx context.Context, settings resolver.ParallelSettings) (
|
|
hostToIPs map[string][]netip.Addr, warnings []string, err error)
|
|
}
|
|
|
|
type Unzipper interface {
|
|
FetchAndExtract(ctx context.Context, url string) (
|
|
contents map[string][]byte, err error)
|
|
}
|
|
|
|
type Warner interface {
|
|
Warn(s string)
|
|
}
|
|
|
|
type IPFetcher interface {
|
|
String() string
|
|
CanFetchAnyIP() bool
|
|
FetchInfo(ctx context.Context, ip netip.Addr) (result models.PublicIP, err error)
|
|
}
|