Skip to content

Commit

Permalink
More review feedback.
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Wilkie committed Aug 20, 2015
1 parent 9e5242f commit 1897624
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions nameserver/dns.go
Expand Up @@ -70,14 +70,18 @@ func (d *DNSServer) listen(address string) error {
if err != nil {
return err
}
udpServer := &dns.Server{PacketConn: udpListener, Handler: d.createHandler(d.udpClient, minUDPSize)}
udpMux := dns.NewServeMux()
d.createHandler(d.udpClient, minUDPSize, udpMux)
udpServer := &dns.Server{PacketConn: udpListener, Handler: udpMux}

tcpListener, err := net.Listen("tcp", address)
if err != nil {
udpServer.Shutdown()
return err
}
tcpServer := &dns.Server{Listener: tcpListener, Handler: d.createHandler(d.tcpClient, -1)}
tcpMux := dns.NewServeMux()
d.createHandler(d.tcpClient, -1, tcpMux)
tcpServer := &dns.Server{Listener: tcpListener, Handler: tcpMux}

d.servers = []*dns.Server{udpServer, tcpServer}
return nil
Expand Down Expand Up @@ -114,21 +118,19 @@ func (d *DNSServer) errorResponse(r *dns.Msg, code int, w dns.ResponseWriter) {

type handler struct {
*DNSServer
*dns.ServeMux
maxResponseSize int
client *dns.Client
}

func (d *DNSServer) createHandler(client *dns.Client, defaultMaxResponseSize int) *handler {
func (d *DNSServer) createHandler(client *dns.Client, defaultMaxResponseSize int, mux *dns.ServeMux) *handler {
h := &handler{
ServeMux: dns.NewServeMux(),
DNSServer: d,
maxResponseSize: defaultMaxResponseSize,
client: client,
}
h.HandleFunc(d.domain, h.handleLocal)
h.HandleFunc(reverseDNSdomain, h.handleReverse)
h.HandleFunc(topDomain, h.handleRecursive)
mux.HandleFunc(d.domain, h.handleLocal)
mux.HandleFunc(reverseDNSdomain, h.handleReverse)
mux.HandleFunc(topDomain, h.handleRecursive)
return h
}

Expand Down

0 comments on commit 1897624

Please sign in to comment.