aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Olivier Lemasle <o.lemasle@gmail.com> 2020-08-24 09:12:00 +0200
committerGravatar GitHub <noreply@github.com> 2020-08-24 09:12:00 +0200
commitf36715e88948fec07701cce675d4ec3626e9f21c (patch)
treee3580bd4efb248cfdf07b56d33e9a3f27ebf49bd
parentf6262eb2f688f4953980f8193dcaa4a7bc2018cd (diff)
downloadcoredns-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.go9
-rw-r--r--core/dnsserver/server_test.go28
-rw-r--r--plugin/debug/README.md3
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