gluetun updater only downloads files from gluetun-servers

This commit is contained in:
Quentin McGaw
2026-05-11 03:34:54 +00:00
parent d9cc7dcffb
commit 4d2ec68e66
8 changed files with 125 additions and 130 deletions
+13 -38
View File
@@ -10,15 +10,8 @@ import (
"strings"
"time"
"github.com/qdm12/dns/v2/pkg/doh"
dnsprovider "github.com/qdm12/dns/v2/pkg/provider"
"github.com/qdm12/gluetun-servers/pkg/publicip/api"
"github.com/qdm12/gluetun-servers/pkg/updaters/resolver"
"github.com/qdm12/gluetun-servers/pkg/updaters/unzip"
"github.com/qdm12/gluetun/internal/configuration/settings"
"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/updater"
)
@@ -52,8 +45,19 @@ func (c *CLI) Update(ctx context.Context, args []string, logger UpdaterLogger) e
return err
}
if dnsServer != "" {
switch {
case dnsServer != "":
logger.Warn("The -dns flag is no longer used, your DNS will use DoH with Cloudflare and Google")
case endUserMode:
logger.Warn("The -enduser flag is no longer used and has no effect")
case ipToken != "":
logger.Warn("The -ip-token flag is no longer used and has no effect")
case protonUsername != "":
logger.Warn("The -proton-username flag is no longer used and has no effect. Use -proton-email instead.")
case protonEmail != "":
logger.Warn("The -proton-email flag is no longer used and has no effect")
case protonPassword != "":
logger.Warn("The -proton-password flag is no longer used and has no effect")
}
if updateAll {
@@ -87,38 +91,9 @@ func (c *CLI) Update(ctx context.Context, args []string, logger UpdaterLogger) e
return fmt.Errorf("creating servers storage: %w", err)
}
dohSettings := doh.Settings{
UpstreamResolvers: []dnsprovider.Provider{
dnsprovider.Cloudflare(),
dnsprovider.Google(),
},
}
dnsDialer, err := doh.New(dohSettings)
if err != nil {
return fmt.Errorf("creating DoH dialer: %w", err)
}
const clientTimeout = 10 * time.Second
httpClient := &http.Client{Timeout: clientTimeout}
unzipper := unzip.New(httpClient)
parallelResolver := resolver.NewParallelResolver(dnsDialer)
nameTokenPairs := []api.NameToken{
{Name: string(api.IPInfo), Token: ipToken},
{Name: string(api.IP2Location)},
{Name: string(api.IfConfigCo)},
}
fetchers, err := api.New(nameTokenPairs, httpClient)
if err != nil {
return fmt.Errorf("creating public IP fetchers: %w", err)
}
ipFetcher := api.NewResilient(fetchers, logger)
openvpnFileExtractor := extract.New()
providers := provider.NewProviders(storage, time.Now, logger, httpClient,
unzipper, parallelResolver, ipFetcher, openvpnFileExtractor, options)
updater := updater.New(httpClient, storage, providers, logger)
updater := updater.New(httpClient, storage, logger)
err = updater.UpdateServers(ctx, options.Providers, options.MinRatio)
if err != nil {
return fmt.Errorf("updating server information: %w", err)