Move the handler function closer to its use

This commit is contained in:
Michael Bridgen committed 2014-10-28 15:39:50 +00:00
1 parent 96ce10a4d5
commit b3489f6ec1
1 file changed
+14 -16
+14 -16
View File
@@ -35,21 +35,6 @@ func (s *MDNSServer) addrIsLocal(testaddr net.Addr) bool {
}
func (s *MDNSServer) Start(ifi *net.Interface) error {
handleMDNS := func(w dns.ResponseWriter, r *dns.Msg) {
// Ignore answers to other questions
if len(r.Answer) == 0 && len(r.Question) > 0 {
q := r.Question[0]
if ip, err := s.zone.MatchLocal(q.Name); err == nil {
m := makeAReply(r, &q, []net.IP{ip})
s.SendResponse(m)
} else if s.addrIsLocal(w.RemoteAddr()) {
// ignore this - it's our own query received via multicast
} else {
Debug.Printf("Failed MDNS lookup for %s", q.Name)
}
}
}
conn, err := LinkLocalMulticastListener(ifi)
if err != nil {
return err
@@ -64,8 +49,21 @@ func (s *MDNSServer) Start(ifi *net.Interface) error {
return err
}
handleMDNS := func(w dns.ResponseWriter, r *dns.Msg) {
// Ignore answers to other questions
if len(r.Answer) == 0 && len(r.Question) > 0 {
q := r.Question[0]
if ip, err := s.zone.MatchLocal(q.Name); err == nil {
m := makeAReply(r, &q, []net.IP{ip})
s.SendResponse(m)
} else if s.addrIsLocal(w.RemoteAddr()) {
// ignore this - it's our own query received via multicast
} else {
Debug.Printf("Failed MDNS lookup for %s", q.Name)
}
}
}
go dns.ActivateAndServe(nil, conn, dns.HandlerFunc(handleMDNS))
return err
}