chore(all): remove unexported interfaces
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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{})
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user