@@ -178,10 +178,14 @@ func (h *baseHandler) onFlow(localaddr, target netip.AddrPort) (fm *Mark, undidA
178178 preuid = pre .UID
179179 }
180180 } else {
181- log .W ("com: %s: onFlow: preflow: uid %s is not a number; use %s" , h .proto , pre .UID , uid )
181+ log .E ("com: %s: onFlow: preflow: uid %s is not a number; use %s; err? %v " , h .proto , pre .UID , uid , cerr )
182182 }
183183 }
184184
185+ if settings .Debug {
186+ log .VV ("com: %s: onFlow: preflow: has? %t, preuid: %s for %s => %s" , h .proto , hasPre , preuid , src , dst )
187+ }
188+
185189 // alg happens after nat64, and so, alg knows nat-ed ips and un-nats them;
186190 // that is, real ips ("ips") are already un-nated where applicable.
187191 undidAlg , ips , doms , pdoms , blocklists = h .undoAlg (target .Addr (), preuid )
@@ -190,13 +194,16 @@ func (h *baseHandler) onFlow(localaddr, target netip.AddrPort) (fm *Mark, undidA
190194 hasNewIPs := false
191195 if hasPre {
192196 for d := range strings .SplitSeq (doms , "," ) {
193- if len (d ) <= 0 && settings .Debug {
194- log .V ("com: %s: onFlow: preflow: empty domain in %v from %v => %v for %s; skip!" ,
195- h .proto , doms , src , target , preuid )
197+ nodomain := len (d ) <= 0
198+ if nodomain && settings .Debug {
199+ logwif (len (d ) <= 0 )("com: %s: onFlow: preflow: %v from %v => %v for %s; nodomain? %t" ,
200+ h .proto , doms , src , target , preuid , nodomain )
196201 continue
197202 }
198203 newips , err := dialers .ResolveFor (d , preuid )
199204 hasNewIPs = err == nil && len (newips ) > 0
205+ logwif (! hasNewIPs )("com: %s: onFlow: preflow: resolved alg domain %s? %t; new ips %v for %s => %s; preuid: %s" ,
206+ h .proto , d , hasNewIPs , newips , src , dst , preuid )
200207 if hasNewIPs { // already unalg'd by ipmapper
201208 // _, ips, doms, pdoms, blocklists = h.undoAlg(target.Addr())
202209 ips = dnsx .Netip2Csv (newips )
@@ -213,13 +220,14 @@ func (h *baseHandler) onFlow(localaddr, target netip.AddrPort) (fm *Mark, undidA
213220 } // else: if we've got target and/or old ips, dial them
214221 } else {
215222 if settings .Debug {
216- log .D ("com: %s: onFlow: noalg? %t or hasips? %t" , h .proto , ! undidAlg , hasOldIPs )
223+ log .D ("com: %s: onFlow: noalg? %t or hasips? %t for %s => %s; preuid %s" ,
224+ h .proto , ! undidAlg , hasOldIPs , src , dst , preuid )
217225 }
218226 }
219227
220228 if settings .Debug && (len (ips ) <= 0 || len (doms ) <= 0 ) {
221- log .D ("com: %s: onFlow: no realips(%s) or domains(%s + %s), for src=%s dst=%s" ,
222- h .proto , ips , doms , pdoms , localaddr , target )
229+ log .D ("com: %s: onFlow: no realips(%s) or domains(%s + %s), for src=%s dst=%s; preuid=%s; alg? %t " ,
230+ h .proto , ips , doms , pdoms , localaddr , target , preuid , undidAlg )
223231 }
224232
225233 fm , ok := core .Grx (h .proto + ".flow" , func (_ context.Context ) (* Mark , error ) {
@@ -510,7 +518,7 @@ func makeIPPorts(ips []netip.Addr, origipp netip.AddrPort, maybeIncludeOrig bool
510518
511519 origip := origipp .Addr ()
512520 origport := origipp .Port ()
513- willIncludeOrig := maybeIncludeOrig && ((use4 && origip . Is4 ()) || (use6 && origip . Is6 () ))
521+ willIncludeOrig := maybeIncludeOrig && ((use4 && orig4 ) || (use6 && orig6 ))
514522 r := make ([]netip.AddrPort , 0 , cap )
515523 // override alg-ip with the first real-ip
516524 for _ , v := range ips { // may contain unspecifed ips
@@ -534,7 +542,7 @@ func makeIPPorts(ips []netip.Addr, origipp netip.AddrPort, maybeIncludeOrig bool
534542 if len (r ) > 0 {
535543 s := core .ShuffleInPlace (r )
536544 if willIncludeOrig {
537- return append ([]netip.AddrPort {origipp }, s ... )
545+ s = append ([]netip.AddrPort {origipp }, s ... )
538546 }
539547 return s
540548 }
0 commit comments