Skip to content

Commit 8b5e5e6

Browse files
Update intra/tcp.go
1 parent fa57a93 commit 8b5e5e6

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

intra/tcp.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,17 @@ func (h *tcpHandler) Proxy(gconn *netstack.GTCPConn, src, target netip.AddrPort)
187187
}
188188

189189
if isAnyBasePid(pids) { // see udp.go:Connect
190-
if h.dnsOverride(gconn, target, uid) {
190+
if target.IsValid() && h.resolver.IsDnsAddr(target) {
191191
// SocketSummary not sent; x.DNSSummary supercedes it
192+
if _, err := gconn.Establish(); err != nil {
193+
clos(gconn)
194+
h.queueSummary(smm.done(err))
195+
return deny // == !open
196+
}
197+
// conn closed by the resolver
198+
core.Gx(h.proto+".dns", func() {
199+
h.resolver.Serve(h.proto, gconn, uid)
200+
})
192201
return allow
193202
} // else not a dns request
194203
} // if ipn.Exit then let it connect as-is (aka exit)
@@ -263,7 +272,8 @@ func (h *tcpHandler) handle(px ipn.Proxy, src net.Conn, boundSrc, target netip.A
263272
}
264273

265274
gconn := src.(*netstack.GTCPConn)
266-
if open, err := gconn.Establish(); !open {
275+
if _, err := gconn.Establish(); err != nil {
276+
clos(pc)
267277
return err
268278
}
269279

0 commit comments

Comments
 (0)