Set default port of 53 if not specified for DNS target (#169)
authorConor Broderick <conor.broderick@robustperception.io>
Wed, 21 Jun 2017 14:37:14 +0000 (15:37 +0100)
committerBrian Brazil <brian.brazil@robustperception.io>
Wed, 21 Jun 2017 14:37:14 +0000 (15:37 +0100)
dns.go

diff --git a/dns.go b/dns.go
index 9d9de2451d176732c6e215e4fadc244f5f09b720..727c1dc2682b9689326a8ccc5814f7f491779da4 100644 (file)
--- a/dns.go
+++ b/dns.go
@@ -113,14 +113,17 @@ func probeDNS(target string, module Module, registry *prometheus.Registry) bool
        if module.DNS.TransportProtocol == "" {
                module.DNS.TransportProtocol = "udp"
        }
-
        if module.DNS.TransportProtocol == "udp" || module.DNS.TransportProtocol == "tcp" {
-               targetAddr, _, _ := net.SplitHostPort(target)
+               targetAddr, port, _ := net.SplitHostPort(target)
+               if port == "" {
+                       port = "53"
+               }
                ip, err = chooseProtocol(module.DNS.PreferredIPProtocol, targetAddr, registry)
                if err != nil {
                        log.Error(err)
                        return false
                }
+               target = net.JoinHostPort(ip.String(), port)
        } else {
                log.Errorf("Configuration error: Expected transport protocol udp or tcp, got %s", module.DNS.TransportProtocol)
                return false
@@ -145,7 +148,6 @@ func probeDNS(target string, module Module, registry *prometheus.Registry) bool
                        return false
                }
        }
-
        msg := new(dns.Msg)
        msg.SetQuestion(dns.Fqdn(module.DNS.QueryName), qt)
        response, _, err := client.Exchange(msg, target)