fix DNS forword issue, inspired by skydns

This commit is contained in:
wweir
2021-07-28 14:59:48 +08:00
parent d31ba7ef79
commit d7c0ba112e
3 changed files with 5 additions and 2 deletions
+3
View File
@@ -52,6 +52,9 @@ func (r *Router) ServeDNS(w dns.ResponseWriter, req *dns.Msg) {
default:
conn.Close()
}
resp.Id = req.Id
resp.Compress = true
w.WriteMsg(resp)
}
+1 -1
View File
@@ -138,5 +138,5 @@ func (r *Router) ProxyHandle(conn net.Conn, domain string, port uint16) error {
func (r *Router) DirectHandle(conn net.Conn, addr string) error {
dur, err := util.RelayTo(conn, addr)
return errors.Wrapf(err, "direct relay to (%s), spend (%s)", addr, dur)
return errors.Wrapf(err, "spend (%s)", dur)
}
+1 -1
View File
@@ -18,7 +18,7 @@ func RelayTo(conn net.Conn, addr string) (dur time.Duration, err error) {
start := time.Now()
rc, err := net.DialTimeout("tcp", addr, 5*time.Second)
if err != nil {
return time.Since(start), errors.Wrapf(err, "dial %s", addr)
return time.Since(start), errors.WithStack(err)
}
defer rc.Close()