From f49b5a3a0b655ca41579cba0d81d81bef44f97e8 Mon Sep 17 00:00:00 2001 From: Star Brilliant Date: Thu, 30 Nov 2017 16:14:05 +0800 Subject: [PATCH] Modify HTTP status codes to affect the error --- doh-client/client.go | 2 +- doh-server/server.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/doh-client/client.go b/doh-client/client.go index acaf442..f9d4760 100644 --- a/doh-client/client.go +++ b/doh-client/client.go @@ -194,7 +194,7 @@ func (c *Client) handlerFunc(w dns.ResponseWriter, r *dns.Msg, isTCP bool) { return } if resp.StatusCode != 200 { - log.Printf("Server returned error: %s\n", resp.Status) + log.Printf("HTTP error: %s\n", resp.Status) reply.Rcode = dns.RcodeServerFailure w.WriteMsg(reply) return diff --git a/doh-server/server.go b/doh-server/server.go index 0bb664b..2b656b2 100644 --- a/doh-server/server.go +++ b/doh-server/server.go @@ -205,7 +205,7 @@ func (s *Server) handlerFunc(w http.ResponseWriter, r *http.Request) { resp, err := s.doDNSQuery(msg) if err != nil { - jsonDNS.FormatError(w, fmt.Sprintf("DNS query failure (%s)", err.Error()), 503) + jsonDNS.FormatError(w, fmt.Sprintf("DNS query failure (%s)", err.Error()), 502) return } respJson := jsonDNS.Marshal(resp) @@ -223,6 +223,9 @@ func (s *Server) handlerFunc(w http.ResponseWriter, r *http.Request) { } w.Header().Set("Expires", respJson.EarliestExpires.Format(time.RFC1123)) } + if respJson.Status == dns.RcodeServerFailure { + w.WriteHeader(503) + } w.Write(respStr) }