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
|
// cache
|
||||||
|
|
||||||
|
DNSMode string
|
||||||
InboundDetour string
|
InboundDetour string
|
||||||
LastInbound string
|
LastInbound string
|
||||||
OriginDestination M.Socksaddr
|
OriginDestination M.Socksaddr
|
||||||
|
@ -4,3 +4,8 @@ const (
|
|||||||
DNSProviderAliDNS = "alidns"
|
DNSProviderAliDNS = "alidns"
|
||||||
DNSProviderCloudflare = "cloudflare"
|
DNSProviderCloudflare = "cloudflare"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DNSModeNormal = "normal"
|
||||||
|
DNSModeFakeIP = "fake-ip"
|
||||||
|
)
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/sagernet/sing-box/adapter"
|
"github.com/sagernet/sing-box/adapter"
|
||||||
|
C "github.com/sagernet/sing-box/constant"
|
||||||
"github.com/sagernet/sing/common"
|
"github.com/sagernet/sing/common"
|
||||||
"github.com/sagernet/sing/common/atomic"
|
"github.com/sagernet/sing/common/atomic"
|
||||||
"github.com/sagernet/sing/common/bufio"
|
"github.com/sagernet/sing/common/bufio"
|
||||||
@ -64,6 +65,12 @@ func (t TrackerMetadata) MarshalJSON() ([]byte, error) {
|
|||||||
} else {
|
} else {
|
||||||
rule = "final"
|
rule = "final"
|
||||||
}
|
}
|
||||||
|
var dnsMode string
|
||||||
|
if t.Metadata.DNSMode != "" {
|
||||||
|
dnsMode = t.Metadata.DNSMode
|
||||||
|
} else {
|
||||||
|
dnsMode = C.DNSModeNormal
|
||||||
|
}
|
||||||
return json.Marshal(map[string]any{
|
return json.Marshal(map[string]any{
|
||||||
"id": t.ID,
|
"id": t.ID,
|
||||||
"metadata": map[string]any{
|
"metadata": map[string]any{
|
||||||
@ -74,7 +81,7 @@ func (t TrackerMetadata) MarshalJSON() ([]byte, error) {
|
|||||||
"sourcePort": F.ToString(t.Metadata.Source.Port),
|
"sourcePort": F.ToString(t.Metadata.Source.Port),
|
||||||
"destinationPort": F.ToString(t.Metadata.Destination.Port),
|
"destinationPort": F.ToString(t.Metadata.Destination.Port),
|
||||||
"host": domain,
|
"host": domain,
|
||||||
"dnsMode": "normal",
|
"dnsMode": dnsMode,
|
||||||
"processPath": processPath,
|
"processPath": processPath,
|
||||||
},
|
},
|
||||||
"upload": t.Upload.Load(),
|
"upload": t.Upload.Load(),
|
||||||
|
@ -845,6 +845,7 @@ func (r *Router) RouteConnection(ctx context.Context, conn net.Conn, metadata ad
|
|||||||
Fqdn: domain,
|
Fqdn: domain,
|
||||||
Port: metadata.Destination.Port,
|
Port: metadata.Destination.Port,
|
||||||
}
|
}
|
||||||
|
metadata.DNSMode = C.DNSModeFakeIP
|
||||||
metadata.FakeIP = true
|
metadata.FakeIP = true
|
||||||
r.logger.DebugContext(ctx, "found fakeip domain: ", domain)
|
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,
|
Fqdn: domain,
|
||||||
Port: metadata.Destination.Port,
|
Port: metadata.Destination.Port,
|
||||||
}
|
}
|
||||||
|
metadata.DNSMode = C.DNSModeFakeIP
|
||||||
metadata.FakeIP = true
|
metadata.FakeIP = true
|
||||||
r.logger.DebugContext(ctx, "found fakeip domain: ", domain)
|
r.logger.DebugContext(ctx, "found fakeip domain: ", domain)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user