File tree 1 file changed +27
-0
lines changed
1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -4,13 +4,40 @@ import (
4
4
"fmt"
5
5
"log"
6
6
"os"
7
+ "strings"
7
8
8
9
"github.com/miekg/dns"
9
10
)
10
11
12
+ func forwardToExternalDNS (q dns.Question ) ([]dns.RR , error ) {
13
+ // Query the external DNS server (e.g., 1.1.1.1)
14
+ client := new (dns.Client )
15
+ message := new (dns.Msg )
16
+ message .SetQuestion (q .Name , q .Qtype )
17
+
18
+ // Using 1.1.1.1 as an external resolver
19
+ resp , _ , err := client .Exchange (message , "1.1.1.1:53" )
20
+ if err != nil {
21
+ return nil , err
22
+ }
23
+ return resp .Answer , nil
24
+ }
25
+
11
26
func parseQuery (m * dns.Msg , qdns * QuickDNSResolver ) {
12
27
for _ , q := range m .Question {
13
28
println ("Query: " , q .Name , q .Qtype , q .Qclass )
29
+
30
+ if ! strings .HasSuffix (q .Name , ".swiftwave.xyz" ) {
31
+ // Query 1.1.1.1 or another DNS server and add the answer
32
+ answers , err := forwardToExternalDNS (q )
33
+ if err != nil {
34
+ log .Printf ("Failed to forward query: %v" , err )
35
+ return
36
+ }
37
+ m .Answer = append (m .Answer , answers ... )
38
+ return
39
+ }
40
+
14
41
switch q .Qtype {
15
42
case dns .TypeNone :
16
43
fallthrough
You can’t perform that action at this time.
0 commit comments