@@ -200,14 +200,14 @@ func (t *plus) forward(network string, q *dns.Msg, outSmm *x.DNSSummary, all ...
200200 qtyp := qtype (q )
201201 tries := plusMaxTries
202202 visited := make (map [string ]struct {}, len (all ))
203- var curSmm * x.DNSSummary
203+ var finalSmm * x.DNSSummary
204204
205205 defer func () {
206- fillSummary (curSmm , outSmm )
206+ fillSummary (finalSmm , outSmm )
207207 }()
208208
209209 for _ , tr := range all {
210- curSmm = new (x. DNSSummary )
210+ finalSmm = copySummary ( outSmm )
211211
212212 if len (visited ) > tries {
213213 break
@@ -227,7 +227,7 @@ func (t *plus) forward(network string, q *dns.Msg, outSmm *x.DNSSummary, all ...
227227 }
228228 visited [id ] = struct {}{}
229229
230- ans , err := tr .Query (network , q , curSmm )
230+ ans , err := tr .Query (network , q , finalSmm )
231231
232232 failed := xdns .IsServFailOrInvalid (ans )
233233 noans := ! failed && ! xdns .HasAnyAnswer (ans )
@@ -236,7 +236,7 @@ func (t *plus) forward(network string, q *dns.Msg, outSmm *x.DNSSummary, all ...
236236 svcbblock := (xdns .HasHTTPQuestion (q ) || xdns .HasSVCBQuestion (q )) && noans
237237
238238 loged (err != nil || failed || noans )("plus: queried %s for %s:%d; data: %s, code: %d, err? %v" ,
239- idstr (tr ), qname , qtyp , curSmm .RData , curSmm .RCode , err )
239+ idstr (tr ), qname , qtyp , finalSmm .RData , finalSmm .RCode , err )
240240
241241 if err != nil || ans == nil {
242242 errs = core .JoinErr (errs , core .OneErr (err , errNoAnswer ))
0 commit comments