(ctx context.Context)
| 9 | ) |
| 10 | |
| 11 | func (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 | } |
no test coverage detected