From ecbe3fce913d7906b0b1bc3dc644eddfb1c113aa Mon Sep 17 00:00:00 2001 From: vladimir Date: Thu, 24 Nov 2022 18:14:40 +0200 Subject: [PATCH 1/2] Fix DoH base64 encoding --- resolver/resolver-https.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/resolver/resolver-https.go b/resolver/resolver-https.go index b0ce489b..cbf86ae8 100644 --- a/resolver/resolver-https.go +++ b/resolver/resolver-https.go @@ -70,9 +70,9 @@ func (hr *HTTPSResolver) Query(ctx context.Context, q *Query) (*RRCache, error) if err != nil { return nil, err } - b64dns := base64.RawStdEncoding.EncodeToString(buf) + b64dns := base64.RawURLEncoding.EncodeToString(buf) - // Build and execute http reuqest + // Build and execute http request url := &url.URL{ Scheme: "https", Host: hr.resolver.ServerAddress, @@ -94,6 +94,10 @@ func (hr *HTTPSResolver) Query(ctx context.Context, q *Query) (*RRCache, error) _ = resp.Body.Close() }() + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("http response code %s", resp.Status) + } + // Try to read the result body, err := io.ReadAll(resp.Body) if err != nil { From 3bf791f317c6bc029309b7b8ea9c0482924a35aa Mon Sep 17 00:00:00 2001 From: Vladimir Stoilov Date: Wed, 30 Nov 2022 14:31:27 +0200 Subject: [PATCH 2/2] Better wording for failed DoH request. Co-authored-by: Daniel Hovie --- resolver/resolver-https.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resolver/resolver-https.go b/resolver/resolver-https.go index cbf86ae8..36e30f15 100644 --- a/resolver/resolver-https.go +++ b/resolver/resolver-https.go @@ -95,7 +95,7 @@ func (hr *HTTPSResolver) Query(ctx context.Context, q *Query) (*RRCache, error) }() if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("http response code %s", resp.Status) + return nil, fmt.Errorf("http request failed with %s", resp.Status) } // Try to read the result