From 140d892ccf309280d08bb0a487c7f5a6d663c5c5 Mon Sep 17 00:00:00 2001 From: wwqgtxx Date: Sat, 22 Nov 2025 20:51:08 +0800 Subject: [PATCH] chore: better log --- tunnel/dns_dialer.go | 8 ++++++-- tunnel/tunnel.go | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/tunnel/dns_dialer.go b/tunnel/dns_dialer.go index c141d966..364cba69 100644 --- a/tunnel/dns_dialer.go +++ b/tunnel/dns_dialer.go @@ -70,7 +70,9 @@ func (d *DNSDialer) DialContext(ctx context.Context, network, addr string) (net. } else { var ok bool proxyAdapter, ok = Proxies()[proxyName] - if !ok { + if ok { + metadata.SpecialProxy = proxyName // just for log + } else { opts = append(opts, dialer.WithInterface(proxyName)) } } @@ -158,7 +160,9 @@ func (d *DNSDialer) ListenPacket(ctx context.Context, network, addr string) (net } else { var ok bool proxyAdapter, ok = Proxies()[proxyName] - if !ok { + if ok { + metadata.SpecialProxy = proxyName // just for log + } else { opts = append(opts, dialer.WithInterface(proxyName)) } } diff --git a/tunnel/tunnel.go b/tunnel/tunnel.go index fc901eb3..1b2f4136 100644 --- a/tunnel/tunnel.go +++ b/tunnel/tunnel.go @@ -627,7 +627,7 @@ func logMetadataErr(metadata *C.Metadata, rule C.Rule, proxy C.ProxyAdapter, err func logMetadata(metadata *C.Metadata, rule C.Rule, remoteConn C.Connection) { switch { case metadata.SpecialProxy != "": - log.Infoln("[%s] %s --> %s using %s", strings.ToUpper(metadata.NetWork.String()), metadata.SourceDetail(), metadata.RemoteAddress(), metadata.SpecialProxy) + log.Infoln("[%s] %s --> %s using %s", strings.ToUpper(metadata.NetWork.String()), metadata.SourceDetail(), metadata.RemoteAddress(), remoteConn.Chains().String()) case rule != nil: if rule.Payload() != "" { log.Infoln("[%s] %s --> %s match %s using %s", strings.ToUpper(metadata.NetWork.String()), metadata.SourceDetail(), metadata.RemoteAddress(), fmt.Sprintf("%s(%s)", rule.RuleType().String(), rule.Payload()), remoteConn.Chains().String()) @@ -639,7 +639,7 @@ func logMetadata(metadata *C.Metadata, rule C.Rule, remoteConn C.Connection) { case mode == Direct: log.Infoln("[%s] %s --> %s using DIRECT", strings.ToUpper(metadata.NetWork.String()), metadata.SourceDetail(), metadata.RemoteAddress()) default: - log.Infoln("[%s] %s --> %s doesn't match any rule using %s", strings.ToUpper(metadata.NetWork.String()), metadata.SourceDetail(), metadata.RemoteAddress(), remoteConn.Chains().Last()) + log.Infoln("[%s] %s --> %s doesn't match any rule using %s", strings.ToUpper(metadata.NetWork.String()), metadata.SourceDetail(), metadata.RemoteAddress(), remoteConn.Chains().String()) } }