diff options
author | 2020-08-24 09:12:00 +0200 | |
---|---|---|
committer | 2020-08-24 09:12:00 +0200 | |
commit | f36715e88948fec07701cce675d4ec3626e9f21c (patch) | |
tree | e3580bd4efb248cfdf07b56d33e9a3f27ebf49bd | |
parent | f6262eb2f688f4953980f8193dcaa4a7bc2018cd (diff) | |
download | coredns-f36715e88948fec07701cce675d4ec3626e9f21c.tar.gz coredns-f36715e88948fec07701cce675d4ec3626e9f21c.tar.zst coredns-f36715e88948fec07701cce675d4ec3626e9f21c.zip |
Enable debug globally if enabled in any server config (#4007)
* Enable debug globally if enabled in any server config
It was currently enabled only if the plugin debug
was enabled in the last server config of the Corefile.
Signed-off-by: Olivier Lemasle <o.lemasle@gmail.com>
* Add test and update debug's README
Signed-off-by: Olivier Lemasle <o.lemasle@gmail.com>
-rw-r--r-- | core/dnsserver/server.go | 9 | ||||
-rw-r--r-- | core/dnsserver/server_test.go | 28 | ||||
-rw-r--r-- | plugin/debug/README.md | 3 |
3 files changed, 36 insertions, 4 deletions
diff --git a/core/dnsserver/server.go b/core/dnsserver/server.go index b5bc14a63..915bd73d3 100644 --- a/core/dnsserver/server.go +++ b/core/dnsserver/server.go @@ -66,10 +66,6 @@ func NewServer(addr string, group []*Config) (*Server, error) { if site.Debug { s.debug = true log.D.Set() - } else { - // When reloading we need to explicitly disable debug logging if it is now disabled. - s.debug = false - log.D.Clear() } // set the config per zone s.zones[site.Zone] = site @@ -97,6 +93,11 @@ func NewServer(addr string, group []*Config) (*Server, error) { site.pluginChain = stack } + if !s.debug { + // When reloading we need to explicitly disable debug logging if it is now disabled. + log.D.Clear() + } + return s, nil } diff --git a/core/dnsserver/server_test.go b/core/dnsserver/server_test.go index c3bed02bc..d7289474b 100644 --- a/core/dnsserver/server_test.go +++ b/core/dnsserver/server_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/coredns/coredns/plugin" + "github.com/coredns/coredns/plugin/pkg/log" "github.com/coredns/coredns/plugin/test" "github.com/miekg/dns" @@ -48,6 +49,33 @@ func TestNewServer(t *testing.T) { } } +func TestDebug(t *testing.T) { + configNoDebug, configDebug := testConfig("dns", testPlugin{}), testConfig("dns", testPlugin{}) + configDebug.Debug = true + + s1, err := NewServer("127.0.0.1:53", []*Config{configDebug, configNoDebug}) + if err != nil { + t.Errorf("Expected no error for NewServer, got %s", err) + } + if !s1.debug { + t.Errorf("Expected debug mode enabled for server s1") + } + if !log.D.Value() { + t.Errorf("Expected debug logging enabled") + } + + s2, err := NewServer("127.0.0.1:53", []*Config{configNoDebug}) + if err != nil { + t.Errorf("Expected no error for NewServer, got %s", err) + } + if s2.debug { + t.Errorf("Expected debug mode disabled for server s2") + } + if log.D.Value() { + t.Errorf("Expected debug logging disabled") + } +} + func BenchmarkCoreServeDNS(b *testing.B) { s, err := NewServer("127.0.0.1:53", []*Config{testConfig("dns", testPlugin{})}) if err != nil { diff --git a/plugin/debug/README.md b/plugin/debug/README.md index a6234866d..c52ee7299 100644 --- a/plugin/debug/README.md +++ b/plugin/debug/README.md @@ -12,6 +12,9 @@ will be printed to standard output. Note that the *errors* plugin (if loaded) will also set a `recover`, negating this setting. +Enabling this plugin is process-wide: enabling *debug* in at least one server block enables +debug mode globally. + ## Syntax ~~~ txt |