@@ -159,6 +159,11 @@ func (t *plus) ordered() ([]Transport, error) {
159159 ord = append (ord , preferred ... )
160160 ord = append (ord , recov ... )
161161
162+ ord = core .CopyUniq (ord )
163+ if len (ord ) < plusMaxTries {
164+ ord = core .CopyUniq (ord , errored )
165+ }
166+
162167 prev := ord
163168 strat := settings .PlusStrat .Load ()
164169 switch strat {
@@ -173,11 +178,12 @@ func (t *plus) ordered() ([]Transport, error) {
173178 }
174179
175180 if len (ord ) <= 0 {
176- log .W ("plus: zero transports avail [exp: %d]: errored: %v / ended: %v" ,
177- expected , errored , ended )
181+ log .W ("plus: strat %d: zero transports avail [exp: %d]: sys? %s / pref: %s / errored: %v / ended: %v" ,
182+ strat , expected , idstr ( sys ), infcsv ( preferred ... ), infcsv ( errored ... ), infcsv ( ended ... ) )
178183 return nil , errNoSuchTransport
179184 } else if len (ord ) < len (prev ) {
180- log .VV ("plus: filtered %d < chosen %d; chosen: %v" , len (ord ), len (prev ), ord )
185+ log .VV ("plus: strat %d: filtered %d < chosen %d; chosen: %s / pref: %v" ,
186+ strat , len (ord ), len (prev ), infcsv (ord ... ), infcsv (preferred ... ))
181187 }
182188
183189 return ord , nil
@@ -205,7 +211,7 @@ func (t *plus) forward(network string, q *dns.Msg, outSmm *x.DNSSummary, all ...
205211 defer func () {
206212 fillSummary (finalsmm , outSmm )
207213 if finalans != nil { // suppress errors
208- log .D ("plus: suppressing errors for %s:%d[%s]: %v" , qname , qtype , finalsmm .RData , errs )
214+ log .D ("plus: suppressing errors for %s:%d[%s]: %v" , qname , qtyp , outSmm .RData , errs )
209215 errs = nil
210216 }
211217 }()
0 commit comments