mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 10:43:17 -04:00
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:
@@ -71,6 +71,8 @@ func (h Host) Normalize() string {
|
||||
s = s[len(TransportDNS+"://"):]
|
||||
case strings.HasPrefix(s, TransportGRPC+"://"):
|
||||
s = s[len(TransportGRPC+"://"):]
|
||||
case strings.HasPrefix(s, TransportHTTPS+"://"):
|
||||
s = s[len(TransportHTTPS+"://"):]
|
||||
}
|
||||
|
||||
// The error can be ignore here, because this function is called after the corefile
|
||||
@@ -138,7 +140,8 @@ func SplitHostPort(s string) (host, port string, ipnet *net.IPNet, err error) {
|
||||
|
||||
// Duplicated from core/dnsserver/address.go !
|
||||
const (
|
||||
TransportDNS = "dns"
|
||||
TransportTLS = "tls"
|
||||
TransportGRPC = "grpc"
|
||||
TransportDNS = "dns"
|
||||
TransportTLS = "tls"
|
||||
TransportGRPC = "grpc"
|
||||
TransportHTTPS = "https"
|
||||
)
|
||||
|
||||
@@ -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 }
|
||||
|
||||
Reference in New Issue
Block a user