aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-01-15 18:22:05 +0100
committerMartin Polden <mpolden@mpolden.no>2020-01-15 18:22:05 +0100
commit89609637a69d3e08fa2dae66d2794d3923a322fd (patch)
tree3c36af2099710c570efb1a9e3c4096a16c3e33da
parenteebc1b30f096e53a732cdf6b2ae5900cf1394507 (diff)
Do not fail without logger
-rw-r--r--dns/proxy.go30
-rw-r--r--dns/proxy_test.go9
-rw-r--r--server_test.go9
3 files changed, 15 insertions, 33 deletions
diff --git a/dns/proxy.go b/dns/proxy.go
index c33167e..6241edd 100644
--- a/dns/proxy.go
+++ b/dns/proxy.go
@@ -10,6 +10,7 @@ import (
"github.com/miekg/dns"
"github.com/mpolden/zdns/cache"
"github.com/mpolden/zdns/dns/dnsutil"
+ "github.com/mpolden/zdns/sql"
)
const (
@@ -33,25 +34,20 @@ type Handler func(*Request) *Reply
// Proxy represents a DNS proxy.
type Proxy struct {
- Handler Handler
- cache *cache.Cache
- dnsLogger logger
- server *dns.Server
- client *dnsutil.Client
- mu sync.RWMutex
-}
-
-type logger interface {
- Record(net.IP, bool, uint16, string, ...string)
- Close() error
+ Handler Handler
+ cache *cache.Cache
+ logger *sql.Logger
+ server *dns.Server
+ client *dnsutil.Client
+ mu sync.RWMutex
}
// NewProxy creates a new DNS proxy.
-func NewProxy(cache *cache.Cache, client *dnsutil.Client, dnsLogger logger) (*Proxy, error) {
+func NewProxy(cache *cache.Cache, client *dnsutil.Client, logger *sql.Logger) (*Proxy, error) {
return &Proxy{
- dnsLogger: dnsLogger,
- cache: cache,
- client: client,
+ logger: logger,
+ cache: cache,
+ client: client,
}, nil
}
@@ -128,8 +124,8 @@ func (p *Proxy) writeMsg(w dns.ResponseWriter, msg *dns.Msg, hijacked bool) {
default:
panic(fmt.Sprintf("unexpected remote address type %T", v))
}
- if p.dnsLogger != nil {
- p.dnsLogger.Record(ip, hijacked, msg.Question[0].Qtype, msg.Question[0].Name, dnsutil.Answers(msg)...)
+ if p.logger != nil {
+ p.logger.Record(ip, hijacked, msg.Question[0].Qtype, msg.Question[0].Name, dnsutil.Answers(msg)...)
}
w.WriteMsg(msg)
}
diff --git a/dns/proxy_test.go b/dns/proxy_test.go
index 0f60dbb..7eef51d 100644
--- a/dns/proxy_test.go
+++ b/dns/proxy_test.go
@@ -67,15 +67,8 @@ func (e *testExchanger) Exchange(msg *dns.Msg, addr string) (*dns.Msg, time.Dura
return r.answer, time.Second, nil
}
-type testLogger struct{}
-
-func (l *testLogger) Record(net.IP, bool, uint16, string, ...string) {}
-
-func (l *testLogger) Close() error { return nil }
-
func testProxy(t *testing.T) *Proxy {
- dnsLogger := &testLogger{}
- proxy, err := NewProxy(cache.New(0, nil), nil, dnsLogger)
+ proxy, err := NewProxy(cache.New(0, nil), nil, nil)
if err != nil {
t.Fatal(err)
}
diff --git a/server_test.go b/server_test.go
index 6856348..67eb795 100644
--- a/server_test.go
+++ b/server_test.go
@@ -33,12 +33,6 @@ const hostsFile2 = `
192.0.2.6 badhost6
`
-type testLogger struct{}
-
-func (l *testLogger) Record(net.IP, bool, uint16, string, ...string) {}
-
-func (l *testLogger) Close() error { return nil }
-
func httpHandler(t *testing.T, response string) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if _, err := w.Write([]byte(response)); err != nil {
@@ -106,8 +100,7 @@ func testServer(t *testing.T, refreshInterval time.Duration) (*Server, func()) {
if err := config.load(); err != nil {
t.Fatal(err)
}
- queryLogger := &testLogger{}
- proxy, err := dns.NewProxy(cache.New(0, nil), nil, queryLogger)
+ proxy, err := dns.NewProxy(cache.New(0, nil), nil, nil)
if err != nil {
t.Fatal(err)
}