From 0549326dfb1e01d0321075ba33b128f81b93426c Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Fri, 3 Jun 2022 13:01:29 +0000 Subject: [PATCH] chore(updater): tiny code changes - Remove unneeded ctx error check in cyberghost updating code - Move global scope caser to function local scope - Return error if updating a single provider in `UpdateServers` - Add comments on different error paths in `UpdateServers` --- .../provider/cyberghost/updater/resolve.go | 4 ---- internal/updater/providers.go | 3 +-- internal/updater/updater.go | 23 +++++++++++++------ 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/internal/provider/cyberghost/updater/resolve.go b/internal/provider/cyberghost/updater/resolve.go index 72d38436..a92b002d 100644 --- a/internal/provider/cyberghost/updater/resolve.go +++ b/internal/provider/cyberghost/updater/resolve.go @@ -34,9 +34,5 @@ func resolveHosts(ctx context.Context, presolver resolver.Parallel, return nil, err } - if err := ctx.Err(); err != nil { - return nil, err - } - return hostToIPs, nil } diff --git a/internal/updater/providers.go b/internal/updater/providers.go index c27e8ecd..3fdb36d7 100644 --- a/internal/updater/providers.go +++ b/internal/updater/providers.go @@ -98,8 +98,7 @@ func (u *Updater) getServers(ctx context.Context, provider string, panic("provider " + provider + " is unknown") } - servers, err = providerUpdater.GetServers(ctx, minServers) - return servers, err + return providerUpdater.GetServers(ctx, minServers) } func (u *Updater) getProviderServers(provider string) (servers []models.Server) { diff --git a/internal/updater/updater.go b/internal/updater/updater.go index b3ae4429..a8746de9 100644 --- a/internal/updater/updater.go +++ b/internal/updater/updater.go @@ -49,20 +49,29 @@ func New(settings settings.Updater, httpClient *http.Client, } } -var caser = cases.Title(language.English) //nolint:gochecknoglobals - func (u *Updater) UpdateServers(ctx context.Context) (allServers models.AllServers, err error) { + caser := cases.Title(language.English) for _, provider := range u.options.Providers { u.logger.Info("updating " + caser.String(provider) + " servers...") // TODO support servers offering only TCP or only UDP // for NordVPN and PureVPN err := u.updateProvider(ctx, provider) - if err != nil { - if ctxErr := ctx.Err(); ctxErr != nil { - return allServers, ctxErr - } - u.logger.Error(err.Error()) + if err == nil { + continue } + + // return the only error for the single provider. + if len(u.options.Providers) == 1 { + return allServers, err + } + + // stop updating the next providers if context is canceled. + if ctxErr := ctx.Err(); ctxErr != nil { + return allServers, ctxErr + } + + // Log the error and continue updating the next provider. + u.logger.Error(err.Error()) } return u.servers, nil