chore(all): remove unexported interfaces

This commit is contained in:
Quentin McGaw
2022-06-12 00:57:37 +00:00
parent 89277828ac
commit bda6707685
18 changed files with 37 additions and 113 deletions

View File

@@ -29,6 +29,7 @@ import (
"github.com/qdm12/gluetun/internal/models" "github.com/qdm12/gluetun/internal/models"
"github.com/qdm12/gluetun/internal/netlink" "github.com/qdm12/gluetun/internal/netlink"
"github.com/qdm12/gluetun/internal/openvpn" "github.com/qdm12/gluetun/internal/openvpn"
"github.com/qdm12/gluetun/internal/openvpn/extract"
"github.com/qdm12/gluetun/internal/portforward" "github.com/qdm12/gluetun/internal/portforward"
"github.com/qdm12/gluetun/internal/pprof" "github.com/qdm12/gluetun/internal/pprof"
"github.com/qdm12/gluetun/internal/provider" "github.com/qdm12/gluetun/internal/provider"
@@ -383,8 +384,9 @@ func _main(ctx context.Context, buildInfo models.BuildInformation,
unzipper := unzip.New(httpClient) unzipper := unzip.New(httpClient)
parallelResolver := resolver.NewParallelResolver(allSettings.Updater.DNSAddress) parallelResolver := resolver.NewParallelResolver(allSettings.Updater.DNSAddress)
providers := provider.NewProviders(storage, time.Now, openvpnFileExtractor := extract.New()
updaterLogger, httpClient, unzipper, parallelResolver, ipFetcher) providers := provider.NewProviders(storage, time.Now, updaterLogger,
httpClient, unzipper, parallelResolver, ipFetcher, openvpnFileExtractor)
vpnLogger := logger.New(log.SetComponent("vpn")) vpnLogger := logger.New(log.SetComponent("vpn"))
vpnLooper := vpn.NewLoop(allSettings.VPN, allSettings.Firewall.VPNInputPorts, vpnLooper := vpn.NewLoop(allSettings.VPN, allSettings.Firewall.VPNInputPorts,

View File

@@ -10,6 +10,7 @@ import (
"github.com/qdm12/gluetun/internal/configuration/sources" "github.com/qdm12/gluetun/internal/configuration/sources"
"github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/constants"
"github.com/qdm12/gluetun/internal/openvpn/extract"
"github.com/qdm12/gluetun/internal/provider" "github.com/qdm12/gluetun/internal/provider"
"github.com/qdm12/gluetun/internal/publicip/ipinfo" "github.com/qdm12/gluetun/internal/publicip/ipinfo"
"github.com/qdm12/gluetun/internal/storage" "github.com/qdm12/gluetun/internal/storage"
@@ -56,9 +57,10 @@ func (c *CLI) OpenvpnConfig(logger OpenvpnConfigLogger, source sources.Source) e
warner := (Warner)(nil) warner := (Warner)(nil)
parallelResolver := (ParallelResolver)(nil) parallelResolver := (ParallelResolver)(nil)
ipFetcher := (IPFetcher)(nil) ipFetcher := (IPFetcher)(nil)
openvpnFileExtractor := extract.New()
providers := provider.NewProviders(storage, time.Now, warner, client, providers := provider.NewProviders(storage, time.Now, warner, client,
unzipper, parallelResolver, ipFetcher) unzipper, parallelResolver, ipFetcher, openvpnFileExtractor)
providerConf := providers.Get(*allSettings.VPN.Provider.Name) providerConf := providers.Get(*allSettings.VPN.Provider.Name)
connection, err := providerConf.GetConnection(allSettings.VPN.Provider.ServerSelection) connection, err := providerConf.GetConnection(allSettings.VPN.Provider.ServerSelection)
if err != nil { if err != nil {

View File

@@ -12,6 +12,7 @@ import (
"github.com/qdm12/gluetun/internal/configuration/settings" "github.com/qdm12/gluetun/internal/configuration/settings"
"github.com/qdm12/gluetun/internal/constants" "github.com/qdm12/gluetun/internal/constants"
"github.com/qdm12/gluetun/internal/constants/providers" "github.com/qdm12/gluetun/internal/constants/providers"
"github.com/qdm12/gluetun/internal/openvpn/extract"
"github.com/qdm12/gluetun/internal/provider" "github.com/qdm12/gluetun/internal/provider"
"github.com/qdm12/gluetun/internal/publicip/ipinfo" "github.com/qdm12/gluetun/internal/publicip/ipinfo"
"github.com/qdm12/gluetun/internal/storage" "github.com/qdm12/gluetun/internal/storage"
@@ -76,9 +77,10 @@ func (c *CLI) Update(ctx context.Context, args []string, logger UpdaterLogger) e
unzipper := unzip.New(httpClient) unzipper := unzip.New(httpClient)
parallelResolver := resolver.NewParallelResolver(options.DNSAddress) parallelResolver := resolver.NewParallelResolver(options.DNSAddress)
ipFetcher := ipinfo.New(httpClient) ipFetcher := ipinfo.New(httpClient)
openvpnFileExtractor := extract.New()
providers := provider.NewProviders(storage, time.Now, logger, httpClient, providers := provider.NewProviders(storage, time.Now, logger, httpClient,
unzipper, parallelResolver, ipFetcher) unzipper, parallelResolver, ipFetcher, openvpnFileExtractor)
updater := updater.New(httpClient, storage, providers, logger) updater := updater.New(httpClient, storage, providers, logger)
err = updater.UpdateServers(ctx, options.Providers) err = updater.UpdateServers(ctx, options.Providers)

View File

@@ -4,8 +4,6 @@ import (
"context" "context"
"github.com/qdm12/dns/pkg/unbound" "github.com/qdm12/dns/pkg/unbound"
"github.com/qdm12/gluetun/internal/configuration/settings"
"github.com/qdm12/gluetun/internal/models"
) )
type Configurator interface { type Configurator interface {
@@ -15,15 +13,3 @@ type Configurator interface {
stdoutLines, stderrLines chan string, waitError chan error, err error) stdoutLines, stderrLines chan string, waitError chan error, err error)
Version(ctx context.Context) (version string, err error) Version(ctx context.Context) (version string, err error)
} }
type statusManager interface {
GetStatus() (status models.LoopStatus)
SetStatus(status models.LoopStatus)
ApplyStatus(ctx context.Context, status models.LoopStatus) (
outcome string, err error)
}
type stateManager interface {
GetSettings() (settings settings.DNS)
SetSettings(ctx context.Context, settings settings.DNS) (outcome string)
}

View File

@@ -15,8 +15,8 @@ import (
) )
type Loop struct { type Loop struct {
statusManager statusManager statusManager *loopstate.State
state stateManager state *state.State
conf Configurator conf Configurator
resolvConf string resolvConf string
blockBuilder blacklist.Builder blockBuilder blacklist.Builder

View File

@@ -1,21 +1,12 @@
package httpproxy package httpproxy
type Logger interface { type Logger interface {
infoErrorer
Debug(s string) Debug(s string)
infoer
Warn(s string) Warn(s string)
errorer
} }
type infoErrorer interface { type infoErrorer interface {
infoer
errorer
}
type infoer interface {
Info(s string) Info(s string)
}
type errorer interface {
Error(s string) Error(s string)
} }

View File

@@ -13,8 +13,8 @@ import (
) )
type Loop struct { type Loop struct {
statusManager statusManager statusManager *loopstate.State
state StateManager state *state.State
// Other objects // Other objects
logger Logger logger Logger
// Internal channels and locks // Internal channels and locks
@@ -25,18 +25,6 @@ type Loop struct {
backoffTime time.Duration backoffTime time.Duration
} }
type statusManager interface {
GetStatus() (status models.LoopStatus)
SetStatus(status models.LoopStatus)
ApplyStatus(ctx context.Context, status models.LoopStatus) (
outcome string, err error)
}
type StateManager interface {
GetSettings() settings.HTTPProxy
SetSettings(ctx context.Context, settings settings.HTTPProxy) (outcome string)
}
const defaultBackoffTime = 10 * time.Second const defaultBackoffTime = 10 * time.Second
func NewLoop(logger Logger, settings settings.HTTPProxy) *Loop { func NewLoop(logger Logger, settings settings.HTTPProxy) *Loop {

View File

@@ -2,29 +2,9 @@ package portforward
import ( import (
"context" "context"
"github.com/qdm12/gluetun/internal/configuration/settings"
"github.com/qdm12/gluetun/internal/models"
) )
type PortAllower interface { type PortAllower interface {
SetAllowedPort(ctx context.Context, port uint16, intf string) (err error) SetAllowedPort(ctx context.Context, port uint16, intf string) (err error)
RemoveAllowedPort(ctx context.Context, port uint16) (err error) RemoveAllowedPort(ctx context.Context, port uint16) (err error)
} }
type statusManager interface {
GetStatus() (status models.LoopStatus)
SetStatus(status models.LoopStatus)
ApplyStatus(ctx context.Context, status models.LoopStatus) (
outcome string, err error)
}
type StateManager interface {
GetSettings() (settings settings.PortForwarding)
SetSettings(ctx context.Context,
settings settings.PortForwarding) (outcome string)
GetPortForwarded() (port uint16)
SetPortForwarded(port uint16)
GetStartData() (startData StartData)
SetStartData(startData StartData)
}

View File

@@ -13,8 +13,8 @@ import (
) )
type Loop struct { type Loop struct {
statusManager statusManager statusManager *loopstate.State
state StateManager state *state.State
// Objects // Objects
client *http.Client client *http.Client
portAllower PortAllower portAllower PortAllower

View File

@@ -27,7 +27,7 @@ func (p *Provider) GetConnection(selection settings.ServerSelection) (
} }
} }
func getOpenVPNConnection(extractor extractor, func getOpenVPNConnection(extractor Extractor,
selection settings.ServerSelection) ( selection settings.ServerSelection) (
connection models.Connection, err error) { connection models.Connection, err error) {
_, connection, err = extractor.Data(*selection.OpenVPN.ConfFile) _, connection, err = extractor.Data(*selection.OpenVPN.ConfFile)

View File

@@ -2,7 +2,7 @@ package custom
import "github.com/qdm12/gluetun/internal/models" import "github.com/qdm12/gluetun/internal/models"
type extractor interface { type Extractor interface {
Data(filepath string) (lines []string, Data(filepath string) (lines []string,
connection models.Connection, err error) connection models.Connection, err error)
} }

View File

@@ -2,20 +2,19 @@ package custom
import ( import (
"github.com/qdm12/gluetun/internal/constants/providers" "github.com/qdm12/gluetun/internal/constants/providers"
"github.com/qdm12/gluetun/internal/openvpn/extract"
"github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/provider/common"
"github.com/qdm12/gluetun/internal/provider/utils" "github.com/qdm12/gluetun/internal/provider/utils"
) )
type Provider struct { type Provider struct {
extractor extractor extractor Extractor
utils.NoPortForwarder utils.NoPortForwarder
common.Fetcher common.Fetcher
} }
func New() *Provider { func New(extractor Extractor) *Provider {
return &Provider{ return &Provider{
extractor: extract.New(), extractor: extractor,
NoPortForwarder: utils.NewNoPortForwarding(providers.Custom), NoPortForwarder: utils.NewNoPortForwarding(providers.Custom),
Fetcher: utils.NewNoFetcher(providers.Custom), Fetcher: utils.NewNoFetcher(providers.Custom),
} }

View File

@@ -43,14 +43,20 @@ type Storage interface {
GetServerByName(provider, name string) (server models.Server, ok bool) GetServerByName(provider, name string) (server models.Server, ok bool)
} }
type Extractor interface {
Data(filepath string) (lines []string,
connection models.Connection, err error)
}
func NewProviders(storage Storage, timeNow func() time.Time, func NewProviders(storage Storage, timeNow func() time.Time,
updaterWarner common.Warner, client *http.Client, unzipper common.Unzipper, updaterWarner common.Warner, client *http.Client, unzipper common.Unzipper,
parallelResolver common.ParallelResolver, ipFetcher common.IPFetcher) *Providers { parallelResolver common.ParallelResolver, ipFetcher common.IPFetcher,
extractor custom.Extractor) *Providers {
randSource := rand.NewSource(timeNow().UnixNano()) randSource := rand.NewSource(timeNow().UnixNano())
//nolint:lll //nolint:lll
providerNameToProvider := map[string]Provider{ providerNameToProvider := map[string]Provider{
providers.Custom: custom.New(), providers.Custom: custom.New(extractor),
providers.Cyberghost: cyberghost.New(storage, randSource, parallelResolver), providers.Cyberghost: cyberghost.New(storage, randSource, parallelResolver),
providers.Expressvpn: expressvpn.New(storage, randSource, unzipper, updaterWarner, parallelResolver), providers.Expressvpn: expressvpn.New(storage, randSource, unzipper, updaterWarner, parallelResolver),
providers.Fastestvpn: fastestvpn.New(storage, randSource, unzipper, updaterWarner, parallelResolver), providers.Fastestvpn: fastestvpn.New(storage, randSource, unzipper, updaterWarner, parallelResolver),

View File

@@ -4,25 +4,9 @@ import (
"context" "context"
"net" "net"
"github.com/qdm12/gluetun/internal/configuration/settings"
"github.com/qdm12/gluetun/internal/models"
"github.com/qdm12/gluetun/internal/publicip/ipinfo" "github.com/qdm12/gluetun/internal/publicip/ipinfo"
) )
type statusManager interface {
GetStatus() (status models.LoopStatus)
SetStatus(status models.LoopStatus)
ApplyStatus(ctx context.Context, status models.LoopStatus) (
outcome string, err error)
}
type stateManager interface {
GetData() (data ipinfo.Response)
SetData(data ipinfo.Response)
GetSettings() (settings settings.PublicIP)
SetSettings(ctx context.Context, settings settings.PublicIP) (outcome string)
}
type Fetcher interface { type Fetcher interface {
FetchInfo(ctx context.Context, ip net.IP) ( FetchInfo(ctx context.Context, ip net.IP) (
result ipinfo.Response, err error) result ipinfo.Response, err error)

View File

@@ -11,8 +11,8 @@ import (
) )
type Loop struct { type Loop struct {
statusManager statusManager statusManager *loopstate.State
state stateManager state *state.State
// Objects // Objects
fetcher Fetcher fetcher Fetcher
logger Logger logger Logger

View File

@@ -32,11 +32,6 @@ type OpenVPN interface {
WriteAuthFile(user, password string) error WriteAuthFile(user, password string) error
} }
type StateManager interface {
GetSettings() (vpn settings.VPN)
SetSettings(ctx context.Context, vpn settings.VPN) (outcome string)
}
type Providers interface { type Providers interface {
Get(providerName string) provider.Provider Get(providerName string) provider.Provider
} }
@@ -73,16 +68,3 @@ type PublicIPLoop interface {
outcome string, err error) outcome string, err error)
SetData(data ipinfo.Response) SetData(data ipinfo.Response)
} }
type statusManager interface {
GetStatus() (status models.LoopStatus)
SetStatus(status models.LoopStatus)
ApplyStatus(ctx context.Context, status models.LoopStatus) (
outcome string, err error)
Lock()
Unlock()
}
type runner interface {
Run(ctx context.Context, waitError chan<- error, tunnelReady chan<- struct{})
}

View File

@@ -14,8 +14,8 @@ import (
) )
type Loop struct { type Loop struct {
statusManager statusManager statusManager *loopstate.State
state StateManager state *state.State
providers Providers providers Providers
storage Storage storage Storage
// Fixed parameters // Fixed parameters

View File

@@ -23,7 +23,9 @@ func (l *Loop) Run(ctx context.Context, done chan<- struct{}) {
providerConf := l.providers.Get(*settings.Provider.Name) providerConf := l.providers.Get(*settings.Provider.Name)
portForwarding := *settings.Provider.PortForwarding.Enabled portForwarding := *settings.Provider.PortForwarding.Enabled
var vpnRunner runner var vpnRunner interface {
Run(ctx context.Context, waitError chan<- error, tunnelReady chan<- struct{})
}
var serverName, vpnInterface string var serverName, vpnInterface string
var err error var err error
subLogger := l.logger.New(log.SetComponent(settings.Type)) subLogger := l.logger.New(log.SetComponent(settings.Type))