MCPcopy
hub / github.com/passteque/gluetun / updateFiles

Method updateFiles

internal/dns/update.go:11–47  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

9)
10
11func (l *Loop) updateFiles(ctx context.Context) (err error) {
12 settings := l.GetSettings()
13
14 l.logger.Info("downloading hostnames and IP block lists")
15 blacklistSettings := settings.Blacklist.ToBlockBuilderSettings(l.client)
16
17 blockBuilder, err := blockbuilder.New(blacklistSettings)
18 if err != nil {
19 return fmt.Errorf("creating block builder: %w", err)
20 }
21
22 result := blockBuilder.BuildAll(ctx)
23 for _, resultErr := range result.Errors {
24 if err != nil {
25 err = fmt.Errorf("%w, %w", err, resultErr)
26 continue
27 }
28 err = resultErr
29 }
30
31 if err != nil {
32 return err
33 }
34
35 updateSettings := update.Settings{
36 IPs: result.BlockedIPs,
37 IPPrefixes: result.BlockedIPPrefixes,
38 }
39 updateSettings.BlockHostnames(result.BlockedHostnames)
40 updateSettings.SetRebindingProtectionExempt(settings.Blacklist.RebindingProtectionExemptHostnames)
41 err = l.filter.Update(updateSettings)
42 if err != nil {
43 return fmt.Errorf("updating filter: %w", err)
44 }
45
46 return nil
47}

Callers 2

setupServerMethod · 0.95
RunRestartTickerMethod · 0.95

Calls 5

GetSettingsMethod · 0.95
InfoMethod · 0.65
ErrorfMethod · 0.65
UpdateMethod · 0.65

Tested by

no test coverage detected