Просмотр исходного кода

Merge pull request #1351 from sanimej/edns

Send truncated external responses to the client
Madhu Venugopal 9 лет назад
Родитель
Сommit
7c3bbb4593
1 измененных файлов с 5 добавлено и 0 удалено
  1. 5 0
      libnetwork/resolver.go

+ 5 - 0
libnetwork/resolver.go

@@ -474,6 +474,11 @@ func (r *resolver) ServeDNS(w dns.ResponseWriter, query *dns.Msg) {
 				// read again
 				resp, err = co.ReadMsg()
 				if err != nil {
+					// Truncated DNS replies should be sent to the client so that the
+					// client can retry over TCP
+					if err == dns.ErrTruncated && resp != nil {
+						break
+					}
 					if nerr, ok := err.(net.Error); ok && nerr.Timeout() {
 						r.addQueryToGC(w, query)
 					}