Skip to content

Commit 7fa64c8

Browse files
authored
AGDNS-4221 fix-dnscrypt (12)
1 parent f35ca3e commit 7fa64c8

2 files changed

Lines changed: 6 additions & 20 deletions

File tree

upstream/dnscrypt.go

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,12 @@ package upstream
33
import (
44
"context"
55
"fmt"
6-
"io"
76
"log/slog"
87
"net/url"
9-
"os"
108
"sync"
119
"time"
1210

1311
"github.com/AdguardTeam/dnscrypt"
14-
"github.com/AdguardTeam/golibs/errors"
1512
"github.com/miekg/dns"
1613
)
1714

@@ -65,21 +62,8 @@ func (p *dnsCrypt) Exchange(req *dns.Msg) (resp *dns.Msg, err error) {
6562
defer cancel()
6663
}
6764

68-
resp, err = p.exchangeDNSCrypt(ctx, req)
69-
if errors.Is(err, os.ErrDeadlineExceeded) || errors.Is(err, io.EOF) {
70-
// If request times out, it is possible that the server configuration
71-
// has been changed. It is safe to assume that the key was rotated, see
72-
// https://dnscrypt.pl/2017/02/26/how-key-rotation-is-automated.
73-
// Re-fetch the server certificate info for new requests to not fail.
74-
_, _, err = p.resetClient(ctx)
75-
if err != nil {
76-
return nil, err
77-
}
78-
79-
return p.exchangeDNSCrypt(ctx, req)
80-
}
81-
82-
return resp, err
65+
// Don't wrap the error, because it's informative enough as is.
66+
return p.exchangeDNSCrypt(ctx, req)
8367
}
8468

8569
// Close implements the [Upstream] interface for *dnsCrypt.

upstream/dnscrypt_internal_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,10 @@ func TestDNSCrypt_Exchange_deadline(t *testing.T) {
181181

182182
// Use a shorter timeout to speed up the test.
183183
u, err := AddressToUpstream(srvStamp.String(), &Options{
184-
Logger: testLogger,
185-
Timeout: 100 * time.Millisecond,
184+
Logger: testLogger,
185+
// TODO(f.setrakov): Use stale context when [Upstream.Exchange] will
186+
// accept a context.
187+
Timeout: 1 * time.Nanosecond,
186188
})
187189
require.NoError(t, err)
188190
testutil.CleanupAndRequireSuccess(t, u.Close)

0 commit comments

Comments
 (0)