Skip to content

Commit 7c49244

Browse files
committed
home: imp code
1 parent dac75b6 commit 7c49244

File tree

1 file changed

+46
-56
lines changed

1 file changed

+46
-56
lines changed

internal/home/home.go

Lines changed: 46 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -740,21 +740,48 @@ func run(
740740
mux := http.NewServeMux()
741741
httpReg := aghhttp.NewDefaultRegistrar(mux, mw.wrap)
742742

743-
confModifier, tlsMgr := initFiltering(
744-
ctx,
745-
baseLogger,
746-
opts,
747-
isFirstRun,
748-
sigHdlr,
743+
err := setupContext(ctx, baseLogger, opts, workDir, confPath, isFirstRun)
744+
fatalOnError(err)
745+
746+
err = configureOS(config)
747+
fatalOnError(err)
748+
749+
// Clients package uses filtering package's static data
750+
// (filtering.BlockedSvcKnown()), so we have to initialize filtering static
751+
// data first, but also to avoid relying on automatic Go init() function.
752+
filtering.InitModule(ctx, baseLogger)
753+
754+
confModifier := newDefaultConfigModifier(
755+
config,
756+
baseLogger.With(slogutil.KeyPrefix, "config_modifier"),
749757
workDir,
750758
confPath,
759+
)
760+
761+
err = initContextClients(ctx, baseLogger, sigHdlr, confModifier, httpReg, workDir)
762+
fatalOnError(err)
763+
764+
tlsMgr, err := initTLS(ctx, baseLogger, sigHdlr, confModifier, httpReg)
765+
fatalOnError(err)
766+
767+
err = setupDNSFilteringConf(
768+
ctx,
769+
baseLogger,
770+
config.Filtering,
771+
tlsMgr,
772+
confModifier,
751773
httpReg,
774+
workDir,
752775
)
776+
fatalOnError(err)
777+
778+
err = setupOpts(opts)
779+
fatalOnError(err)
753780

754781
upd, isCustomURL := initUpdate(ctx, baseLogger, opts, tlsMgr, isFirstRun, workDir, confPath)
755782

756783
dataDirPath := filepath.Join(workDir, dataDir)
757-
err := os.MkdirAll(dataDirPath, aghos.DefaultPermDir)
784+
err = os.MkdirAll(dataDirPath, aghos.DefaultPermDir)
758785
fatalOnError(errors.Annotate(err, "creating DNS data dir at %s: %w", dataDirPath))
759786

760787
auth, err := initUsers(ctx, baseLogger, workDir, opts.glinetMode)
@@ -836,41 +863,16 @@ func runDNSServer(
836863
}
837864
}
838865

839-
// initFiltering configures the core filtering and TLS subsystems. Returns a
840-
// configuration modifier and the initialized TLS manager. slogLogger, sigHdlr
841-
// and httpReg must not be nil.
842-
func initFiltering(
866+
// initTLS initializes TLS manager. baseLogger, sigHdlr, confModifier, and
867+
// httpReg must not be nil.
868+
func initTLS(
843869
ctx context.Context,
844-
slogLogger *slog.Logger,
845-
opts options,
846-
isFirstRun bool,
870+
baseLogger *slog.Logger,
847871
sigHdlr *signalHandler,
848-
workDir string,
849-
confPath string,
872+
confModifier *defaultConfigModifier,
850873
httpReg *aghhttp.DefaultRegistrar,
851-
) (confModifier *defaultConfigModifier, tlsMgr *tlsManager) {
852-
err := setupContext(ctx, slogLogger, opts, workDir, confPath, isFirstRun)
853-
fatalOnError(err)
854-
855-
err = configureOS(config)
856-
fatalOnError(err)
857-
858-
// Clients package uses filtering package's static data
859-
// (filtering.BlockedSvcKnown()), so we have to initialize filtering static
860-
// data first, but also to avoid relying on automatic Go init() function.
861-
filtering.InitModule(ctx, slogLogger)
862-
863-
confModifier = newDefaultConfigModifier(
864-
config,
865-
slogLogger.With(slogutil.KeyPrefix, "config_modifier"),
866-
workDir,
867-
confPath,
868-
)
869-
870-
err = initContextClients(ctx, slogLogger, sigHdlr, confModifier, httpReg, workDir)
871-
fatalOnError(err)
872-
873-
tlsMgrLogger := slogLogger.With(slogutil.KeyPrefix, "tls_manager")
874+
) (tlsMgr *tlsManager, err error) {
875+
tlsMgrLogger := baseLogger.With(slogutil.KeyPrefix, "tls_manager")
874876

875877
var watcher aghos.FSWatcher
876878
watcher, err = aghos.NewOSWatcher(&aghos.OSWatcherConfig{
@@ -882,11 +884,13 @@ func initFiltering(
882884
}
883885

884886
aghtlsMgr := aghtls.NewDefaultManager(&aghtls.DefaultManagerConfig{
885-
Logger: slogLogger.With(slogutil.KeyPrefix, "aghtls_manager"),
887+
Logger: baseLogger.With(slogutil.KeyPrefix, "aghtls_manager"),
886888
Watcher: watcher,
887889
})
888890
err = aghtlsMgr.Start(ctx)
889-
fatalOnError(err)
891+
if err != nil {
892+
return nil, fmt.Errorf("starting tls manager: %w", err)
893+
}
890894

891895
sigHdlr.addTLSManager(aghtlsMgr)
892896

@@ -905,21 +909,7 @@ func initFiltering(
905909

906910
confModifier.setTLSManager(tlsMgr)
907911

908-
err = setupDNSFilteringConf(
909-
ctx,
910-
slogLogger,
911-
config.Filtering,
912-
tlsMgr,
913-
confModifier,
914-
httpReg,
915-
workDir,
916-
)
917-
fatalOnError(err)
918-
919-
err = setupOpts(opts)
920-
fatalOnError(err)
921-
922-
return confModifier, tlsMgr
912+
return tlsMgr, nil
923913
}
924914

925915
// initUpdate configures and runs update of this application. logger and tlsMgr

0 commit comments

Comments
 (0)