commit 692accac0fc8763da7b9063b1948fa08415b4b7f
parent 015a48510c60210055aa9a6ac0ca5fa6d5678d74
Author: Oliver Lowe <o@olowe.co>
Date: Thu, 18 Nov 2021 12:42:57 +1100
dohproxy: forward queries using DoT if set in config
Diffstat:
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/cmd/dohproxy/dohproxy.go b/cmd/dohproxy/dohproxy.go
@@ -7,6 +7,7 @@ import (
"io"
"log"
"net/http"
+ "os"
"strconv"
"git.sr.ht/~otl/dns"
@@ -74,7 +75,13 @@ func dnsHandler(w http.ResponseWriter, req *http.Request) {
http.Error(w, "unpack query: "+err.Error(), http.StatusInternalServerError)
}
- resolved, err := dns.Exchange(msg, quad9)
+ var resolved dnsmessage.Message
+ var err error
+ if conf.usetls {
+ resolved, err = dns.ExchangeTLS(msg, conf.forwardaddr)
+ } else {
+ resolved, err = dns.Exchange(msg, conf.forwardaddr)
+ }
if err != nil {
log.Println(err.Error())
http.Error(w, err.Error(), http.StatusInternalServerError)
@@ -92,7 +99,15 @@ func dnsHandler(w http.ResponseWriter, req *http.Request) {
}
}
+var conf config
+
func main() {
+ var err error
+ conf, err = configFromFile("dohproxy.conf")
+ if err != nil {
+ fmt.Fprintln(os.Stderr, "read configuration:", err)
+ os.Exit(1)
+ }
http.HandleFunc("/dns-query", dnsHandler)
- log.Fatalln(http.Serve(autocert.NewListener("syd.olowe.co"), nil))
+ log.Fatalln(http.Serve(autocert.NewListener(conf.listenaddr), nil))
}