all: sync with master
This commit is contained in:
@@ -23,6 +23,7 @@ import (
|
||||
"github.com/AdguardTeam/golibs/log"
|
||||
"github.com/AdguardTeam/golibs/logutil/slogutil"
|
||||
"github.com/AdguardTeam/golibs/netutil"
|
||||
"github.com/AdguardTeam/golibs/netutil/urlutil"
|
||||
"github.com/ameshkov/dnscrypt/v2"
|
||||
yaml "gopkg.in/yaml.v3"
|
||||
)
|
||||
@@ -47,11 +48,11 @@ func onConfigModified() {
|
||||
// initDNS updates all the fields of the [Context] needed to initialize the DNS
|
||||
// server and initializes it at last. It also must not be called unless
|
||||
// [config] and [Context] are initialized. l must not be nil.
|
||||
func initDNS(l *slog.Logger, statsDir, querylogDir string) (err error) {
|
||||
func initDNS(baseLogger *slog.Logger, statsDir, querylogDir string) (err error) {
|
||||
anonymizer := config.anonymizer()
|
||||
|
||||
statsConf := stats.Config{
|
||||
Logger: l.With(slogutil.KeyPrefix, "stats"),
|
||||
Logger: baseLogger.With(slogutil.KeyPrefix, "stats"),
|
||||
Filename: filepath.Join(statsDir, "stats.db"),
|
||||
Limit: config.Stats.Interval.Duration,
|
||||
ConfigModified: onConfigModified,
|
||||
@@ -72,6 +73,7 @@ func initDNS(l *slog.Logger, statsDir, querylogDir string) (err error) {
|
||||
}
|
||||
|
||||
conf := querylog.Config{
|
||||
Logger: baseLogger.With(slogutil.KeyPrefix, "querylog"),
|
||||
Anonymizer: anonymizer,
|
||||
ConfigModified: onConfigModified,
|
||||
HTTPRegister: httpRegister,
|
||||
@@ -112,7 +114,7 @@ func initDNS(l *slog.Logger, statsDir, querylogDir string) (err error) {
|
||||
anonymizer,
|
||||
httpRegister,
|
||||
tlsConf,
|
||||
l,
|
||||
baseLogger,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -371,7 +373,7 @@ func getDNSEncryption() (de dnsEncryption) {
|
||||
}
|
||||
|
||||
de.https = (&url.URL{
|
||||
Scheme: "https",
|
||||
Scheme: urlutil.SchemeHTTPS,
|
||||
Host: addr,
|
||||
Path: "/dns-query",
|
||||
}).String()
|
||||
@@ -456,7 +458,8 @@ func startDNSServer() error {
|
||||
Context.filters.EnableFilters(false)
|
||||
|
||||
// TODO(s.chzhen): Pass context.
|
||||
err := Context.clients.Start(context.TODO())
|
||||
ctx := context.TODO()
|
||||
err := Context.clients.Start(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("starting clients container: %w", err)
|
||||
}
|
||||
@@ -468,7 +471,11 @@ func startDNSServer() error {
|
||||
|
||||
Context.filters.Start()
|
||||
Context.stats.Start()
|
||||
Context.queryLog.Start()
|
||||
|
||||
err = Context.queryLog.Start(ctx)
|
||||
if err != nil {
|
||||
return fmt.Errorf("starting query log: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -524,12 +531,16 @@ func closeDNSServer() {
|
||||
if Context.stats != nil {
|
||||
err := Context.stats.Close()
|
||||
if err != nil {
|
||||
log.Debug("closing stats: %s", err)
|
||||
log.Error("closing stats: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
if Context.queryLog != nil {
|
||||
Context.queryLog.Close()
|
||||
// TODO(s.chzhen): Pass context.
|
||||
err := Context.queryLog.Shutdown(context.TODO())
|
||||
if err != nil {
|
||||
log.Error("closing query log: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
log.Debug("all dns modules are closed")
|
||||
|
||||
Reference in New Issue
Block a user