diff --git a/internal/provider/common/mocks.go b/internal/provider/common/mocks.go index 3c90d19c..3fd6119a 100644 --- a/internal/provider/common/mocks.go +++ b/internal/provider/common/mocks.go @@ -1,10 +1,12 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/qdm12/gluetun/internal/provider/common (interfaces: Storage) +// Source: github.com/qdm12/gluetun/internal/provider/common (interfaces: ParallelResolver,Storage) // Package common is a generated GoMock package. package common import ( + context "context" + net "net" reflect "reflect" gomock "github.com/golang/mock/gomock" @@ -12,6 +14,45 @@ import ( models "github.com/qdm12/gluetun/internal/models" ) +// MockParallelResolver is a mock of ParallelResolver interface. +type MockParallelResolver struct { + ctrl *gomock.Controller + recorder *MockParallelResolverMockRecorder +} + +// MockParallelResolverMockRecorder is the mock recorder for MockParallelResolver. +type MockParallelResolverMockRecorder struct { + mock *MockParallelResolver +} + +// NewMockParallelResolver creates a new mock instance. +func NewMockParallelResolver(ctrl *gomock.Controller) *MockParallelResolver { + mock := &MockParallelResolver{ctrl: ctrl} + mock.recorder = &MockParallelResolverMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockParallelResolver) EXPECT() *MockParallelResolverMockRecorder { + return m.recorder +} + +// Resolve mocks base method. +func (m *MockParallelResolver) Resolve(arg0 context.Context, arg1 []string, arg2 int) (map[string][]net.IP, []string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Resolve", arg0, arg1, arg2) + ret0, _ := ret[0].(map[string][]net.IP) + ret1, _ := ret[1].([]string) + ret2, _ := ret[2].(error) + return ret0, ret1, ret2 +} + +// Resolve indicates an expected call of Resolve. +func (mr *MockParallelResolverMockRecorder) Resolve(arg0, arg1, arg2 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Resolve", reflect.TypeOf((*MockParallelResolver)(nil).Resolve), arg0, arg1, arg2) +} + // MockStorage is a mock of Storage interface. type MockStorage struct { ctrl *gomock.Controller diff --git a/internal/provider/common/mocks_generate_test.go b/internal/provider/common/mocks_generate_test.go index bf15d1e7..6127e693 100644 --- a/internal/provider/common/mocks_generate_test.go +++ b/internal/provider/common/mocks_generate_test.go @@ -1,5 +1,5 @@ package common -// Exceptionally, the storage mock is exported since it is used by all +// Exceptionally, these mocks are exported since they are used by all // provider subpackages tests, and it reduces test code duplication a lot. -//go:generate mockgen -destination=mocks.go -package $GOPACKAGE . Storage +//go:generate mockgen -destination=mocks.go -package $GOPACKAGE . ParallelResolver,Storage diff --git a/internal/provider/common/updater.go b/internal/provider/common/updater.go index 1f1e8fb5..189eaad6 100644 --- a/internal/provider/common/updater.go +++ b/internal/provider/common/updater.go @@ -1,5 +1,14 @@ package common -import "errors" +import ( + "context" + "errors" + "net" +) var ErrNotEnoughServers = errors.New("not enough servers found") + +type ParallelResolver interface { + Resolve(ctx context.Context, hosts []string, minToFind int) ( + hostToIPs map[string][]net.IP, warnings []string, err error) +} diff --git a/internal/provider/cyberghost/updater/resolve.go b/internal/provider/cyberghost/updater/resolve.go index 70f0ed23..e81616ea 100644 --- a/internal/provider/cyberghost/updater/resolve.go +++ b/internal/provider/cyberghost/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 1 maxDuration = 20 * time.Second diff --git a/internal/provider/cyberghost/updater/updater.go b/internal/provider/cyberghost/updater/updater.go index e03c1081..fd0b8e51 100644 --- a/internal/provider/cyberghost/updater/updater.go +++ b/internal/provider/cyberghost/updater/updater.go @@ -1,9 +1,11 @@ package cyberghost -import "github.com/qdm12/gluetun/internal/updater/resolver" +import ( + "github.com/qdm12/gluetun/internal/provider/common" +) type Updater struct { - presolver resolver.Parallel + presolver common.ParallelResolver } func New() *Updater { diff --git a/internal/provider/expressvpn/updater/resolve.go b/internal/provider/expressvpn/updater/resolve.go index 8b42198e..358b9b5d 100644 --- a/internal/provider/expressvpn/updater/resolve.go +++ b/internal/provider/expressvpn/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() resolver.Parallel { +func newParallelResolver() *resolver.Parallel { const ( maxFailRatio = 0.1 maxNoNew = 1 diff --git a/internal/provider/expressvpn/updater/updater.go b/internal/provider/expressvpn/updater/updater.go index abe945a7..9021f7d3 100644 --- a/internal/provider/expressvpn/updater/updater.go +++ b/internal/provider/expressvpn/updater/updater.go @@ -1,13 +1,13 @@ package expressvpn import ( - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/fastestvpn/updater/resolve.go b/internal/provider/fastestvpn/updater/resolve.go index 7c7a6c36..34b56ad7 100644 --- a/internal/provider/fastestvpn/updater/resolve.go +++ b/internal/provider/fastestvpn/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() resolver.Parallel { +func newParallelResolver() *resolver.Parallel { const ( maxFailRatio = 0.1 maxNoNew = 1 diff --git a/internal/provider/fastestvpn/updater/updater.go b/internal/provider/fastestvpn/updater/updater.go index 89afef0f..34ce9459 100644 --- a/internal/provider/fastestvpn/updater/updater.go +++ b/internal/provider/fastestvpn/updater/updater.go @@ -1,13 +1,13 @@ package fastestvpn import ( - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/hidemyass/updater/resolve.go b/internal/provider/hidemyass/updater/resolve.go index 68a963d6..79f44acc 100644 --- a/internal/provider/hidemyass/updater/resolve.go +++ b/internal/provider/hidemyass/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() resolver.Parallel { +func newParallelResolver() *resolver.Parallel { const ( maxFailRatio = 0.1 maxDuration = 15 * time.Second diff --git a/internal/provider/hidemyass/updater/updater.go b/internal/provider/hidemyass/updater/updater.go index cbeec9da..40d532f5 100644 --- a/internal/provider/hidemyass/updater/updater.go +++ b/internal/provider/hidemyass/updater/updater.go @@ -3,12 +3,12 @@ package hidemyass import ( "net/http" - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" ) type Updater struct { client *http.Client - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/ipvanish/updater/resolve.go b/internal/provider/ipvanish/updater/resolve.go index b6a42b8b..2d28f9c9 100644 --- a/internal/provider/ipvanish/updater/resolve.go +++ b/internal/provider/ipvanish/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 20 * time.Second diff --git a/internal/provider/ipvanish/updater/servers_test.go b/internal/provider/ipvanish/updater/servers_test.go index 9e64979e..0c55faaa 100644 --- a/internal/provider/ipvanish/updater/servers_test.go +++ b/internal/provider/ipvanish/updater/servers_test.go @@ -9,7 +9,7 @@ import ( "github.com/golang/mock/gomock" "github.com/qdm12/gluetun/internal/constants/vpn" "github.com/qdm12/gluetun/internal/models" - "github.com/qdm12/gluetun/internal/updater/resolver/mock_resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip/mock_unzip" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -168,7 +168,7 @@ func Test_Updater_GetServers(t *testing.T) { unzipper.EXPECT().FetchAndExtract(ctx, zipURL). Return(testCase.unzipContents, testCase.unzipErr) - presolver := mock_resolver.NewMockParallel(ctrl) + presolver := common.NewMockParallelResolver(ctrl) if testCase.expectResolve { presolver.EXPECT().Resolve(ctx, testCase.hostsToResolve, testCase.minServers). Return(testCase.hostToIPs, testCase.resolveWarnings, testCase.resolveErr) diff --git a/internal/provider/ipvanish/updater/updater.go b/internal/provider/ipvanish/updater/updater.go index 0c2f2687..99c3fc14 100644 --- a/internal/provider/ipvanish/updater/updater.go +++ b/internal/provider/ipvanish/updater/updater.go @@ -1,14 +1,14 @@ package ipvanish import ( - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { unzipper unzip.Unzipper warner Warner - presolver resolver.Parallel + presolver common.ParallelResolver } type Warner interface { diff --git a/internal/provider/ivpn/updater/resolve.go b/internal/provider/ivpn/updater/resolve.go index e79dcb91..9fd0782f 100644 --- a/internal/provider/ivpn/updater/resolve.go +++ b/internal/provider/ivpn/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 20 * time.Second diff --git a/internal/provider/ivpn/updater/servers_test.go b/internal/provider/ivpn/updater/servers_test.go index 4e60e456..1ceff9f5 100644 --- a/internal/provider/ivpn/updater/servers_test.go +++ b/internal/provider/ivpn/updater/servers_test.go @@ -12,7 +12,7 @@ import ( "github.com/golang/mock/gomock" "github.com/qdm12/gluetun/internal/constants/vpn" "github.com/qdm12/gluetun/internal/models" - "github.com/qdm12/gluetun/internal/updater/resolver/mock_resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -128,7 +128,7 @@ func Test_Updater_GetServers(t *testing.T) { }), } - presolver := mock_resolver.NewMockParallel(ctrl) + presolver := common.NewMockParallelResolver(ctrl) if testCase.expectResolve { presolver.EXPECT().Resolve(ctx, testCase.hostsToResolve, testCase.minServers). Return(testCase.hostToIPs, testCase.resolveWarnings, testCase.resolveErr) diff --git a/internal/provider/ivpn/updater/updater.go b/internal/provider/ivpn/updater/updater.go index 11cbcfd4..f13ef476 100644 --- a/internal/provider/ivpn/updater/updater.go +++ b/internal/provider/ivpn/updater/updater.go @@ -3,12 +3,12 @@ package ivpn import ( "net/http" - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" ) type Updater struct { client *http.Client - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/privado/updater/resolve.go b/internal/provider/privado/updater/resolve.go index 7d74a911..0a25a96b 100644 --- a/internal/provider/privado/updater/resolve.go +++ b/internal/provider/privado/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 30 * time.Second diff --git a/internal/provider/privado/updater/updater.go b/internal/provider/privado/updater/updater.go index e835b665..f13cb931 100644 --- a/internal/provider/privado/updater/updater.go +++ b/internal/provider/privado/updater/updater.go @@ -3,14 +3,14 @@ package privado import ( "net/http" - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { client *http.Client unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/privatevpn/updater/resolve.go b/internal/provider/privatevpn/updater/resolve.go index dfeac174..749395af 100644 --- a/internal/provider/privatevpn/updater/resolve.go +++ b/internal/provider/privatevpn/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 6 * time.Second diff --git a/internal/provider/privatevpn/updater/updater.go b/internal/provider/privatevpn/updater/updater.go index 0e8ef40d..598909b4 100644 --- a/internal/provider/privatevpn/updater/updater.go +++ b/internal/provider/privatevpn/updater/updater.go @@ -1,13 +1,13 @@ package privatevpn import ( - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/purevpn/updater/resolve.go b/internal/provider/purevpn/updater/resolve.go index fb356748..f3865607 100644 --- a/internal/provider/purevpn/updater/resolve.go +++ b/internal/provider/purevpn/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 20 * time.Second diff --git a/internal/provider/purevpn/updater/updater.go b/internal/provider/purevpn/updater/updater.go index a908b1fc..bfbfb4df 100644 --- a/internal/provider/purevpn/updater/updater.go +++ b/internal/provider/purevpn/updater/updater.go @@ -3,14 +3,14 @@ package purevpn import ( "net/http" - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { client *http.Client unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/surfshark/updater/resolve.go b/internal/provider/surfshark/updater/resolve.go index 0ca9d60b..90b0afd2 100644 --- a/internal/provider/surfshark/updater/resolve.go +++ b/internal/provider/surfshark/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 20 * time.Second diff --git a/internal/provider/surfshark/updater/updater.go b/internal/provider/surfshark/updater/updater.go index f54f87cf..32049ccb 100644 --- a/internal/provider/surfshark/updater/updater.go +++ b/internal/provider/surfshark/updater/updater.go @@ -3,14 +3,14 @@ package surfshark import ( "net/http" - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { client *http.Client unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/torguard/updater/resolve.go b/internal/provider/torguard/updater/resolve.go index 8de687a8..9a17cf7f 100644 --- a/internal/provider/torguard/updater/resolve.go +++ b/internal/provider/torguard/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 20 * time.Second diff --git a/internal/provider/torguard/updater/updater.go b/internal/provider/torguard/updater/updater.go index 2a354421..c24adbfb 100644 --- a/internal/provider/torguard/updater/updater.go +++ b/internal/provider/torguard/updater/updater.go @@ -1,13 +1,13 @@ package torguard import ( - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/vpnunlimited/updater/resolve.go b/internal/provider/vpnunlimited/updater/resolve.go index 1131061b..244493cb 100644 --- a/internal/provider/vpnunlimited/updater/resolve.go +++ b/internal/provider/vpnunlimited/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 20 * time.Second diff --git a/internal/provider/vpnunlimited/updater/updater.go b/internal/provider/vpnunlimited/updater/updater.go index 6f054d7c..5b7afa94 100644 --- a/internal/provider/vpnunlimited/updater/updater.go +++ b/internal/provider/vpnunlimited/updater/updater.go @@ -1,13 +1,13 @@ package vpnunlimited import ( - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/vyprvpn/updater/resolve.go b/internal/provider/vyprvpn/updater/resolve.go index 135d96e7..518ae08e 100644 --- a/internal/provider/vyprvpn/updater/resolve.go +++ b/internal/provider/vyprvpn/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 5 * time.Second diff --git a/internal/provider/vyprvpn/updater/updater.go b/internal/provider/vyprvpn/updater/updater.go index f79fb582..bdc62f4e 100644 --- a/internal/provider/vyprvpn/updater/updater.go +++ b/internal/provider/vyprvpn/updater/updater.go @@ -1,13 +1,13 @@ package vyprvpn import ( - "github.com/qdm12/gluetun/internal/updater/resolver" + "github.com/qdm12/gluetun/internal/provider/common" "github.com/qdm12/gluetun/internal/updater/unzip" ) type Updater struct { unzipper unzip.Unzipper - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/provider/wevpn/updater/resolve.go b/internal/provider/wevpn/updater/resolve.go index 179eaf62..3c3b5ca7 100644 --- a/internal/provider/wevpn/updater/resolve.go +++ b/internal/provider/wevpn/updater/resolve.go @@ -6,7 +6,7 @@ import ( "github.com/qdm12/gluetun/internal/updater/resolver" ) -func newParallelResolver() (parallelResolver resolver.Parallel) { +func newParallelResolver() (parallelResolver *resolver.Parallel) { const ( maxFailRatio = 0.1 maxDuration = 20 * time.Second diff --git a/internal/provider/wevpn/updater/updater.go b/internal/provider/wevpn/updater/updater.go index b842237d..f1ace92b 100644 --- a/internal/provider/wevpn/updater/updater.go +++ b/internal/provider/wevpn/updater/updater.go @@ -1,11 +1,9 @@ package wevpn -import ( - "github.com/qdm12/gluetun/internal/updater/resolver" -) +import "github.com/qdm12/gluetun/internal/provider/common" type Updater struct { - presolver resolver.Parallel + presolver common.ParallelResolver warner Warner } diff --git a/internal/updater/resolver/mock_resolver/parallel.go b/internal/updater/resolver/mock_resolver/parallel.go deleted file mode 100644 index 0cd743b6..00000000 --- a/internal/updater/resolver/mock_resolver/parallel.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: github.com/qdm12/gluetun/internal/updater/resolver (interfaces: Parallel) - -// Package mock_resolver is a generated GoMock package. -package mock_resolver - -import ( - context "context" - net "net" - reflect "reflect" - - gomock "github.com/golang/mock/gomock" -) - -// MockParallel is a mock of Parallel interface. -type MockParallel struct { - ctrl *gomock.Controller - recorder *MockParallelMockRecorder -} - -// MockParallelMockRecorder is the mock recorder for MockParallel. -type MockParallelMockRecorder struct { - mock *MockParallel -} - -// NewMockParallel creates a new mock instance. -func NewMockParallel(ctrl *gomock.Controller) *MockParallel { - mock := &MockParallel{ctrl: ctrl} - mock.recorder = &MockParallelMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockParallel) EXPECT() *MockParallelMockRecorder { - return m.recorder -} - -// Resolve mocks base method. -func (m *MockParallel) Resolve(arg0 context.Context, arg1 []string, arg2 int) (map[string][]net.IP, []string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Resolve", arg0, arg1, arg2) - ret0, _ := ret[0].(map[string][]net.IP) - ret1, _ := ret[1].([]string) - ret2, _ := ret[2].(error) - return ret0, ret1, ret2 -} - -// Resolve indicates an expected call of Resolve. -func (mr *MockParallelMockRecorder) Resolve(arg0, arg1, arg2 interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Resolve", reflect.TypeOf((*MockParallel)(nil).Resolve), arg0, arg1, arg2) -} diff --git a/internal/updater/resolver/parallel.go b/internal/updater/resolver/parallel.go index 3d3afab6..27ff2800 100644 --- a/internal/updater/resolver/parallel.go +++ b/internal/updater/resolver/parallel.go @@ -7,20 +7,13 @@ import ( "net" ) -//go:generate mockgen -destination=mock_$GOPACKAGE/$GOFILE . Parallel - -type Parallel interface { - Resolve(ctx context.Context, hosts []string, minToFind int) ( - hostToIPs map[string][]net.IP, warnings []string, err error) -} - -type parallel struct { - repeatResolver Repeat +type Parallel struct { + repeatResolver *Repeat settings ParallelSettings } -func NewParallelResolver(settings ParallelSettings) Parallel { - return ¶llel{ +func NewParallelResolver(settings ParallelSettings) *Parallel { + return &Parallel{ repeatResolver: NewRepeat(settings.Repeat), settings: settings, } @@ -46,7 +39,7 @@ var ( ErrMaxFailRatio = errors.New("maximum failure ratio reached") ) -func (pr *parallel) Resolve(ctx context.Context, hosts []string, minToFind int) ( +func (pr *Parallel) Resolve(ctx context.Context, hosts []string, minToFind int) ( hostToIPs map[string][]net.IP, warnings []string, err error) { ctx, cancel := context.WithCancel(ctx) defer cancel() @@ -108,7 +101,7 @@ func (pr *parallel) Resolve(ctx context.Context, hosts []string, minToFind int) return hostToIPs, warnings, nil } -func (pr *parallel) resolveAsync(ctx context.Context, host string, +func (pr *Parallel) resolveAsync(ctx context.Context, host string, results chan<- parallelResult, errors chan<- error) { IPs, err := pr.repeatResolver.Resolve(ctx, host) if err != nil { diff --git a/internal/updater/resolver/repeat.go b/internal/updater/resolver/repeat.go index ba19d411..1b470498 100644 --- a/internal/updater/resolver/repeat.go +++ b/internal/updater/resolver/repeat.go @@ -10,17 +10,13 @@ import ( "time" ) -type Repeat interface { - Resolve(ctx context.Context, host string) (IPs []net.IP, err error) -} - -type repeat struct { +type Repeat struct { resolver *net.Resolver settings RepeatSettings } -func NewRepeat(settings RepeatSettings) Repeat { - return &repeat{ +func NewRepeat(settings RepeatSettings) *Repeat { + return &Repeat{ resolver: newResolver(settings.Address), settings: settings, } @@ -36,7 +32,7 @@ type RepeatSettings struct { SortIPs bool } -func (r *repeat) Resolve(ctx context.Context, host string) (ips []net.IP, err error) { +func (r *Repeat) Resolve(ctx context.Context, host string) (ips []net.IP, err error) { timedCtx, cancel := context.WithTimeout(ctx, r.settings.MaxDuration) defer cancel() @@ -71,7 +67,7 @@ var ( ErrMaxFails = errors.New("reached the maximum number of consecutive failures") ) -func (r *repeat) resolveOnce(ctx, timedCtx context.Context, host string, +func (r *Repeat) resolveOnce(ctx, timedCtx context.Context, host string, settings RepeatSettings, uniqueIPs map[string]struct{}, noNewCounter, failCounter int) ( newNoNewCounter, newFailCounter int, err error) { IPs, err := r.lookupIPs(timedCtx, host) @@ -126,7 +122,7 @@ func (r *repeat) resolveOnce(ctx, timedCtx context.Context, host string, } } -func (r *repeat) lookupIPs(ctx context.Context, host string) (ips []net.IP, err error) { +func (r *Repeat) lookupIPs(ctx context.Context, host string) (ips []net.IP, err error) { addresses, err := r.resolver.LookupIPAddr(ctx, host) if err != nil { return nil, err diff --git a/internal/updater/resolver/resolver.go b/internal/updater/resolver/resolver.go deleted file mode 100644 index b305835e..00000000 --- a/internal/updater/resolver/resolver.go +++ /dev/null @@ -1,3 +0,0 @@ -// Package resolver defines custom resolvers to resolve -// hosts multiple times with adjustable settings. -package resolver