diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-01-15 18:22:05 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-01-15 18:22:05 +0100 |
commit | 89609637a69d3e08fa2dae66d2794d3923a322fd (patch) | |
tree | 3c36af2099710c570efb1a9e3c4096a16c3e33da | |
parent | eebc1b30f096e53a732cdf6b2ae5900cf1394507 (diff) |
Do not fail without logger
-rw-r--r-- | dns/proxy.go | 30 | ||||
-rw-r--r-- | dns/proxy_test.go | 9 | ||||
-rw-r--r-- | server_test.go | 9 |
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) } |