From 969171cea885bac63a1bffa9f7ee6c61f42f4775 Mon Sep 17 00:00:00 2001 From: Christian Joergensen Date: Fri, 5 Oct 2018 12:58:14 +0200 Subject: [PATCH] The DNS client instance and the network protocol is really an implementation detail, so hide it. --- main.go | 16 ++++++++-------- main_test.go | 15 +++------------ 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/main.go b/main.go index 391d8d5..058cb6c 100644 --- a/main.go +++ b/main.go @@ -43,7 +43,7 @@ type Exporter struct { logger Logger } -func NewDNSSECExporter(dnsClient *dns.Client, resolver string, logger Logger) *Exporter { +func NewDNSSECExporter(timeout time.Duration, resolver string, logger Logger) *Exporter { return &Exporter{ records: prometheus.NewGaugeVec( prometheus.GaugeOpts{ @@ -71,9 +71,12 @@ func NewDNSSECExporter(dnsClient *dns.Client, resolver string, logger Logger) *E "type", }, ), - dnsClient: dnsClient, - resolver: resolver, - logger: logger, + dnsClient: &dns.Client{ + Net: "tcp", + Timeout: timeout, + }, + resolver: resolver, + logger: logger, } } @@ -226,10 +229,7 @@ func main() { logger := log.New(os.Stderr, "", log.LstdFlags) - exporter := NewDNSSECExporter(&dns.Client{ - Net: "tcp", - Timeout: *timeout, - }, *resolver, logger) + exporter := NewDNSSECExporter(*timeout, *resolver, logger) if err := toml.NewDecoder(f).Decode(exporter); err != nil { log.Fatalf("couldn't parse configuration file: %v", err) diff --git a/main_test.go b/main_test.go index 919a9b3..ab7b047 100644 --- a/main_test.go +++ b/main_test.go @@ -161,10 +161,7 @@ func TestCollectionOK(t *testing.T) { addr, cancel := runServer(t, opts{}) defer cancel() - e := NewDNSSECExporter(&dns.Client{ - Net: "tcp", - Timeout: 1 * time.Second, - }, addr, nullLogger()) + e := NewDNSSECExporter(time.Second, addr, nullLogger()) valid, exp := e.collectRecord("example.org", "@", "SOA") @@ -187,10 +184,7 @@ func TestCollectionExpired(t *testing.T) { defer cancel() - e := NewDNSSECExporter(&dns.Client{ - Net: "tcp", - Timeout: 1 * time.Second, - }, addr, nullLogger()) + e := NewDNSSECExporter(time.Second, addr, nullLogger()) valid, exp := e.collectRecord("example.org", "@", "SOA") @@ -217,10 +211,7 @@ func TestCollectionInvalid(t *testing.T) { defer cancel() - e := NewDNSSECExporter(&dns.Client{ - Net: "tcp", - Timeout: 1 * time.Second, - }, addr, nullLogger()) + e := NewDNSSECExporter(time.Second, addr, nullLogger()) valid, exp := e.collectRecord("example.org", "@", "SOA")