diff options
-rw-r--r-- | core/dnsserver/server-grpc.go | 3 | ||||
-rw-r--r-- | core/dnsserver/server-tls.go | 19 | ||||
-rw-r--r-- | middleware/file/zone.go | 1 | ||||
-rw-r--r-- | middleware/kubernetes/autopath.go | 1 | ||||
-rw-r--r-- | middleware/kubernetes/kubernetes.go | 3 | ||||
-rw-r--r-- | middleware/pkg/tls/tls.go | 2 | ||||
-rw-r--r-- | middleware/proxy/proxy.go | 2 | ||||
-rw-r--r-- | middleware/proxy/upstream.go | 10 |
8 files changed, 23 insertions, 18 deletions
diff --git a/core/dnsserver/server-grpc.go b/core/dnsserver/server-grpc.go index 36de69ed8..21c5cffeb 100644 --- a/core/dnsserver/server-grpc.go +++ b/core/dnsserver/server-grpc.go @@ -102,6 +102,8 @@ func (s *ServergRPC) OnStartupComplete() { } } +// Stop stops the server. It blocks until the server is +// totally stopped. func (s *ServergRPC) Stop() (err error) { s.m.Lock() defer s.m.Unlock() @@ -144,6 +146,7 @@ func (s *ServergRPC) Query(ctx context.Context, in *pb.DnsPacket) (*pb.DnsPacket return &pb.DnsPacket{Msg: packed}, nil } +// Shutdown stops the server (non gracefully). func (s *ServergRPC) Shutdown() error { if s.grpcServer != nil { s.grpcServer.Stop() diff --git a/core/dnsserver/server-tls.go b/core/dnsserver/server-tls.go index 8302244c8..bd75d9e7d 100644 --- a/core/dnsserver/server-tls.go +++ b/core/dnsserver/server-tls.go @@ -9,24 +9,23 @@ import ( "github.com/miekg/dns" ) -// serverTLS represents an instance of a TLS-over-DNS-server. -type serverTLS struct { +// ServerTLS represents an instance of a TLS-over-DNS-server. +type ServerTLS struct { *Server } // NewServerTLS returns a new CoreDNS TLS server and compiles all middleware in to it. -func NewServerTLS(addr string, group []*Config) (*serverTLS, error) { - +func NewServerTLS(addr string, group []*Config) (*ServerTLS, error) { s, err := NewServer(addr, group) if err != nil { return nil, err } - return &serverTLS{Server: s}, nil + return &ServerTLS{Server: s}, nil } // Serve implements caddy.TCPServer interface. -func (s *serverTLS) Serve(l net.Listener) error { +func (s *ServerTLS) Serve(l net.Listener) error { s.m.Lock() // Only fill out the TCP server for this one. @@ -40,10 +39,10 @@ func (s *serverTLS) Serve(l net.Listener) error { } // ServePacket implements caddy.UDPServer interface. -func (s *serverTLS) ServePacket(p net.PacketConn) error { return nil } +func (s *ServerTLS) ServePacket(p net.PacketConn) error { return nil } // Listen implements caddy.TCPServer interface. -func (s *serverTLS) Listen() (net.Listener, error) { +func (s *ServerTLS) Listen() (net.Listener, error) { // The *tls* middleware must make sure that multiple conflicting // TLS configuration return an error: it can only be specified once. tlsConfig := new(tls.Config) @@ -70,11 +69,11 @@ func (s *serverTLS) Listen() (net.Listener, error) { } // ListenPacket implements caddy.UDPServer interface. -func (s *serverTLS) ListenPacket() (net.PacketConn, error) { return nil, nil } +func (s *ServerTLS) ListenPacket() (net.PacketConn, error) { return nil, nil } // OnStartupComplete lists the sites served by this server // and any relevant information, assuming Quiet is false. -func (s *serverTLS) OnStartupComplete() { +func (s *ServerTLS) OnStartupComplete() { if Quiet { return } diff --git a/middleware/file/zone.go b/middleware/file/zone.go index a216f8af8..3f3bcf0f7 100644 --- a/middleware/file/zone.go +++ b/middleware/file/zone.go @@ -56,6 +56,7 @@ func NewZone(name, file string) *Zone { return z } +// Copy copies a zone. func (z *Zone) Copy() *Zone { z1 := NewZone(z.origin, z.file) z1.TransferTo = z.TransferTo diff --git a/middleware/kubernetes/autopath.go b/middleware/kubernetes/autopath.go index ac86cfd6b..fa79212a9 100644 --- a/middleware/kubernetes/autopath.go +++ b/middleware/kubernetes/autopath.go @@ -14,7 +14,6 @@ import "github.com/miekg/dns" // is NXDOMAIN (NameError). This is needed to support the AutoPath.OnNXDOMAIN // function, which returns a NOERROR to client instead of NXDOMAIN if the final // search in the path fails to produce results. - type AutoPathWriter struct { dns.ResponseWriter original dns.Question diff --git a/middleware/kubernetes/kubernetes.go b/middleware/kubernetes/kubernetes.go index f70f8fcbf..4482de024 100644 --- a/middleware/kubernetes/kubernetes.go +++ b/middleware/kubernetes/kubernetes.go @@ -49,6 +49,7 @@ type Kubernetes struct { interfaceAddrsFunc func() net.IP } +// AutoPath enables server side search path lookups for pods type AutoPath struct { Enabled bool NDots int @@ -683,6 +684,8 @@ func splitSearch(zone, question, namespace string) (name, search string, ok bool } const ( + // Svc is the DNS schema for kubernetes services Svc = "svc" + // Pod is the DNS schema for kubernetes pods Pod = "pod" ) diff --git a/middleware/pkg/tls/tls.go b/middleware/pkg/tls/tls.go index 13882c353..04044422b 100644 --- a/middleware/pkg/tls/tls.go +++ b/middleware/pkg/tls/tls.go @@ -106,7 +106,7 @@ func loadRoots(caPath string) (*x509.CertPool, error) { return roots, nil } -// NetHTTPSTransport returns an HTTP transport configured using tls.Config +// NewHTTPSTransport returns an HTTP transport configured using tls.Config func NewHTTPSTransport(cc *tls.Config) *http.Transport { // this seems like a bad idea but was here in the previous version if cc != nil { diff --git a/middleware/proxy/proxy.go b/middleware/proxy/proxy.go index b3156e818..4a574982d 100644 --- a/middleware/proxy/proxy.go +++ b/middleware/proxy/proxy.go @@ -61,7 +61,7 @@ type UpstreamHost struct { FailTimeout time.Duration OkUntil time.Time CheckDown UpstreamHostDownFunc - CheckUrl string + CheckURL string WithoutPathPrefix string Checking bool checkMu sync.Mutex diff --git a/middleware/proxy/upstream.go b/middleware/proxy/upstream.go index b20165eeb..380b585be 100644 --- a/middleware/proxy/upstream.go +++ b/middleware/proxy/upstream.go @@ -273,7 +273,7 @@ func parseBlock(c *caddyfile.Dispenser, u *staticUpstream) error { // otherwise checks will back up, potentially a lot of them if a host is // absent for a long time. This arrangement makes checks quickly see if // they are the only one running and abort otherwise. -func healthCheckUrl(nextTs time.Time, host *UpstreamHost) { +func healthCheckURL(nextTs time.Time, host *UpstreamHost) { // lock for our bool check. We don't just defer the unlock because // we don't want the lock held while http.Get runs @@ -294,7 +294,7 @@ func healthCheckUrl(nextTs time.Time, host *UpstreamHost) { // when the remote host is not merely not serving, but actually // absent, then tcp syn timeouts can be very long, and so one // fetch could last several check intervals - if r, err := http.Get(host.CheckUrl); err == nil { + if r, err := http.Get(host.CheckURL); err == nil { io.Copy(ioutil.Discard, r.Body) r.Body.Close() @@ -317,7 +317,7 @@ func healthCheckUrl(nextTs time.Time, host *UpstreamHost) { func (u *staticUpstream) healthCheck() { for _, host := range u.Hosts { - if host.CheckUrl == "" { + if host.CheckURL == "" { var hostName, checkPort string // The DNS server might be an HTTP server. If so, extract its name. @@ -338,14 +338,14 @@ func (u *staticUpstream) healthCheck() { checkPort = u.HealthCheck.Port } - host.CheckUrl = "http://" + net.JoinHostPort(checkHostName, checkPort) + u.HealthCheck.Path + host.CheckURL = "http://" + net.JoinHostPort(checkHostName, checkPort) + u.HealthCheck.Path } // calculate this before the get nextTs := time.Now().Add(u.Future) // locks/bools should prevent requests backing up - go healthCheckUrl(nextTs, host) + go healthCheckURL(nextTs, host) } } |