@@ -50,11 +50,6 @@ func logic(ctx context.Context, rootLogger *log.Logger) error {
5050 return fmt .Errorf ("readConfig: %w" , err )
5151 }
5252
53- blocklist , err := loadBlocklistAndDownloadIfRequired (logl )
54- if err != nil {
55- return fmt .Errorf ("loadBlocklistAndDownloadIfRequired: %w" , err )
56- }
57-
5853 tasks := taskrunner .New (ctx , rootLogger )
5954
6055 forwarderPool := NewForwarderPool (
@@ -64,7 +59,6 @@ func logic(ctx context.Context, rootLogger *log.Logger) error {
6459 dnsHandler := NewDnsQueryHandler (
6560 forwarderPool ,
6661 * conf ,
67- * blocklist ,
6862 makeQueryLogger (conf .LogQueries , logex .Prefix ("queryLogger" , rootLogger )),
6963 logex .Prefix ("queryHandler" , rootLogger ))
7064
@@ -81,15 +75,21 @@ func logic(ctx context.Context, rootLogger *log.Logger) error {
8175 })
8276
8377 if ! conf .BlocklistDisableUpdates {
84- replacer := func (blockList Blocklist ) {
85- dnsHandler .replaceBlocklist (blockList )
86- }
87-
8878 tasks .Start ("blocklistUpdateScheduler" , func (ctx context.Context ) error {
89- return blocklistUpdateScheduler (ctx , replacer , logex .Prefix ("blocklistUpdateScheduler" , rootLogger ))
79+ return blocklistUpdateScheduler (ctx , func (blockList Blocklist ) {
80+ dnsHandler .replaceBlocklist (blockList )
81+ }, logex .Prefix ("blocklistUpdateScheduler" , rootLogger ))
9082 })
9183 }
9284
85+ blocklist , err := loadBlocklistAndDownloadIfRequired (logl )
86+ if err != nil {
87+ // can't fail-by-stopping here, because blocklist downloading might depend on *our* DNS not being up
88+ logl .Error .Printf ("loadBlocklistAndDownloadIfRequired: %v" , err )
89+ } else {
90+ dnsHandler .replaceBlocklist (* blocklist )
91+ }
92+
9393 logl .Info .Printf ("Started %s" , dynversion .Version )
9494
9595 return tasks .Wait ()
0 commit comments