Add ip_version rule item

This commit is contained in:
世界
2022-08-16 23:46:05 +08:00
parent d6a0aa7ccf
commit f51128f772
10 changed files with 43 additions and 6 deletions

View File

@@ -5,6 +5,7 @@ import (
"net/netip"
"strings"
"github.com/sagernet/sing-box/adapter"
C "github.com/sagernet/sing-box/constant"
"github.com/sagernet/sing-box/log"
"github.com/sagernet/sing-dns"
@@ -18,6 +19,15 @@ func (r *Router) Exchange(ctx context.Context, message *dnsmessage.Message) (*dn
if len(message.Questions) > 0 {
r.dnsLogger.DebugContext(ctx, "exchange ", formatDNSQuestion(message.Questions[0]))
}
ctx, metadata := adapter.AppendContext(ctx)
if len(message.Questions) > 0 {
switch message.Questions[0].Type {
case dnsmessage.TypeA:
metadata.IPVersion = 4
case dnsmessage.TypeAAAA:
metadata.IPVersion = 6
}
}
ctx, transport := r.matchDNS(ctx)
ctx, cancel := context.WithTimeout(ctx, C.DNSTimeout)
defer cancel()