aboutsummaryrefslogtreecommitdiff
path: root/core/dnsserver/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'core/dnsserver/server.go')
-rw-r--r--core/dnsserver/server.go23
1 files changed, 6 insertions, 17 deletions
diff --git a/core/dnsserver/server.go b/core/dnsserver/server.go
index 27c62312b..c29406f79 100644
--- a/core/dnsserver/server.go
+++ b/core/dnsserver/server.go
@@ -32,6 +32,7 @@ type Server struct {
connTimeout time.Duration // the maximum duration of a graceful shutdown
}
+// NewServer returns a new CoreDNS server and compiles all middleware in to it.
func NewServer(addr string, group []*Config) (*Server, error) {
s := &Server{
@@ -65,20 +66,6 @@ func NewServer(addr string, group []*Config) (*Server, error) {
return s, nil
}
-// LocalAddr return the addresses where the server is bound to.
-func (s *Server) LocalAddr() net.Addr {
- s.m.Lock()
- defer s.m.Unlock()
- return s.l.Addr()
-}
-
-// LocalAddrPacket return the net.PacketConn address where the server is bound to.
-func (s *Server) LocalAddrPacket() net.Addr {
- s.m.Lock()
- defer s.m.Unlock()
- return s.p.LocalAddr()
-}
-
// Serve starts the server with an existing listener. It blocks until the server stops.
func (s *Server) Serve(l net.Listener) error {
s.m.Lock()
@@ -97,6 +84,7 @@ func (s *Server) ServePacket(p net.PacketConn) error {
return s.server[udp].ActivateAndServe()
}
+// Listen implements caddy.TCPServer interface.
func (s *Server) Listen() (net.Listener, error) {
l, err := net.Listen("tcp", s.Addr)
if err != nil {
@@ -108,6 +96,7 @@ func (s *Server) Listen() (net.Listener, error) {
return l, nil
}
+// ListenPacket implements caddy.UDPServer interface.
func (s *Server) ListenPacket() (net.PacketConn, error) {
p, err := net.ListenPacket("udp", s.Addr)
if err != nil {
@@ -197,7 +186,7 @@ func (s *Server) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
if h, ok := s.zones[string(b[:l])]; ok {
if r.Question[0].Qtype != dns.TypeDS {
rcode, _ := h.middlewareChain.ServeDNS(ctx, w, r)
- if RcodeNoClientWrite(rcode) {
+ if rcodeNoClientWrite(rcode) {
DefaultErrorFunc(w, r, rcode)
}
return
@@ -211,7 +200,7 @@ func (s *Server) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
// Wildcard match, if we have found nothing try the root zone as a last resort.
if h, ok := s.zones["."]; ok {
rcode, _ := h.middlewareChain.ServeDNS(ctx, w, r)
- if RcodeNoClientWrite(rcode) {
+ if rcodeNoClientWrite(rcode) {
DefaultErrorFunc(w, r, rcode)
}
return
@@ -234,7 +223,7 @@ func DefaultErrorFunc(w dns.ResponseWriter, r *dns.Msg, rcode int) {
w.WriteMsg(answer)
}
-func RcodeNoClientWrite(rcode int) bool {
+func rcodeNoClientWrite(rcode int) bool {
switch rcode {
case dns.RcodeServerFailure:
fallthrough