make CoreDNS DoH Server (#1619)

* WIP: make CoreDNS DoH Server

* It works

* Fix tests

* Review from Tom - on diff. PR

* correct mime type

* Cleanups and use the pkg/nonwriter

* rename and updates

* implement get

* implement GET

* Code review comments

* correct context

* tweaks

* code review
This commit is contained in:
Miek Gieben
2018-05-21 19:40:46 +01:00
committed by GitHub
parent 67c9075331
commit 18b92e1117
7 changed files with 309 additions and 7 deletions

View File

@@ -2,6 +2,8 @@
package nonwriter
import (
"net"
"github.com/miekg/dns"
)
@@ -9,6 +11,11 @@ import (
type Writer struct {
dns.ResponseWriter
Msg *dns.Msg
// Raddr is the remote's address. This can be optionally set.
Raddr net.Addr
// Laddr is our address. This can be optionally set.
Laddr net.Addr
}
// New makes and returns a new NonWriter.
@@ -20,4 +27,8 @@ func (w *Writer) WriteMsg(res *dns.Msg) error {
return nil
}
func (w *Writer) Write(buf []byte) (int, error) { return len(buf), nil }
// RemoteAddr returns the remote address.
func (w *Writer) RemoteAddr() net.Addr { return w.Raddr }
// LocalAddr returns the local address.
func (w *Writer) LocalAddr() net.Addr { return w.Laddr }