diff options
-rw-r--r-- | core/dnsserver/server_https.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/core/dnsserver/server_https.go b/core/dnsserver/server_https.go index 1e184e044..6ae6ce6a6 100644 --- a/core/dnsserver/server_https.go +++ b/core/dnsserver/server_https.go @@ -119,6 +119,14 @@ func (s *ServerHTTPS) ServeHTTP(w http.ResponseWriter, r *http.Request) { // We should expect a packet to be returned that we can send to the client. s.ServeDNS(context.Background(), dw, msg) + // See section 4.2.1 of RFC 8484. + // We are using code 500 to indicate an unexpected situation when the chain + // handler has not provided any response message. + if dw.Msg == nil { + http.Error(w, "No response", http.StatusInternalServerError) + return + } + buf, _ := dw.Msg.Pack() mt, _ := response.Typify(dw.Msg, time.Now().UTC()) |