mirror of
https://github.com/SagerNet/sing-box.git
synced 2025-06-13 21:54:13 +08:00
show DNSMode
in clash connection api
(cherry picked from commit cb3ccd5a187950d860ed41104e75d48f66ce5886)
This commit is contained in:
parent
ea70360b80
commit
66dbd0165b
@ -43,6 +43,7 @@ type InboundContext struct {
|
||||
|
||||
// cache
|
||||
|
||||
DNSMode string
|
||||
InboundDetour string
|
||||
LastInbound string
|
||||
OriginDestination M.Socksaddr
|
||||
|
@ -4,3 +4,8 @@ const (
|
||||
DNSProviderAliDNS = "alidns"
|
||||
DNSProviderCloudflare = "cloudflare"
|
||||
)
|
||||
|
||||
const (
|
||||
DNSModeNormal = "normal"
|
||||
DNSModeFakeIP = "fake-ip"
|
||||
)
|
||||
|
@ -5,6 +5,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/sagernet/sing-box/adapter"
|
||||
C "github.com/sagernet/sing-box/constant"
|
||||
"github.com/sagernet/sing/common"
|
||||
"github.com/sagernet/sing/common/atomic"
|
||||
"github.com/sagernet/sing/common/bufio"
|
||||
@ -64,6 +65,12 @@ func (t TrackerMetadata) MarshalJSON() ([]byte, error) {
|
||||
} else {
|
||||
rule = "final"
|
||||
}
|
||||
var dnsMode string
|
||||
if t.Metadata.DNSMode != "" {
|
||||
dnsMode = t.Metadata.DNSMode
|
||||
} else {
|
||||
dnsMode = C.DNSModeNormal
|
||||
}
|
||||
return json.Marshal(map[string]any{
|
||||
"id": t.ID,
|
||||
"metadata": map[string]any{
|
||||
@ -74,7 +81,7 @@ func (t TrackerMetadata) MarshalJSON() ([]byte, error) {
|
||||
"sourcePort": F.ToString(t.Metadata.Source.Port),
|
||||
"destinationPort": F.ToString(t.Metadata.Destination.Port),
|
||||
"host": domain,
|
||||
"dnsMode": "normal",
|
||||
"dnsMode": dnsMode,
|
||||
"processPath": processPath,
|
||||
},
|
||||
"upload": t.Upload.Load(),
|
||||
|
@ -845,6 +845,7 @@ func (r *Router) RouteConnection(ctx context.Context, conn net.Conn, metadata ad
|
||||
Fqdn: domain,
|
||||
Port: metadata.Destination.Port,
|
||||
}
|
||||
metadata.DNSMode = C.DNSModeFakeIP
|
||||
metadata.FakeIP = true
|
||||
r.logger.DebugContext(ctx, "found fakeip domain: ", domain)
|
||||
}
|
||||
@ -969,6 +970,7 @@ func (r *Router) RoutePacketConnection(ctx context.Context, conn N.PacketConn, m
|
||||
Fqdn: domain,
|
||||
Port: metadata.Destination.Port,
|
||||
}
|
||||
metadata.DNSMode = C.DNSModeFakeIP
|
||||
metadata.FakeIP = true
|
||||
r.logger.DebugContext(ctx, "found fakeip domain: ", domain)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user