fix: DoH recreate the connection multiple times

This commit is contained in:
gVisor bot 2022-11-19 22:48:04 +08:00
parent a79d7c80cb
commit f26bc212e1

View file

@ -12,6 +12,7 @@ import (
"net/url" "net/url"
"runtime" "runtime"
"strconv" "strconv"
"strings"
"sync" "sync"
"time" "time"
@ -140,7 +141,7 @@ func (doh *dnsOverHTTPS) ExchangeContext(ctx context.Context, m *D.Msg) (msg *D.
msg, err = doh.exchangeHTTPS(ctx, client, m) msg, err = doh.exchangeHTTPS(ctx, client, m)
} }
if err != nil { if err != nil && !strings.Contains(err.Error(), "context canceled") {
// If the request failed anyway, make sure we don't use this client. // If the request failed anyway, make sure we don't use this client.
_, resErr := doh.resetClient(ctx, err) _, resErr := doh.resetClient(ctx, err)