-
Notifications
You must be signed in to change notification settings - Fork 25
Open
Description
netstack(tun).InboundUDP() (used by udpmux.go to vend netstack routes for remote IPs a mxconn isn't connected to) seemingly results in ALL subsequent UDP connections to timeout / non responsive.
firestack/intra/netstack/udp.go
Lines 85 to 97 in 23f8b88
| func InboundUDP(who string, s *stack.Stack, in net.Conn, to, from netip.AddrPort, h GUDPConnHandler) error { | |
| newgc := makeGUDPConn(who, s, nil /*not a forwarder req*/, to, from) | |
| if !settings.SingleThreaded.Load() { | |
| if err := newgc.Establish(); err != nil { | |
| log.E("ns: udp: %s: inbound: dial: %v; src(%v) dst(%v)", | |
| who, err, to, from) | |
| go h.Error(newgc, to, from, err) | |
| return err | |
| } | |
| } | |
| go h.ReverseProxy(newgc, in, to, from) | |
| return nil | |
| } |
We see similar "hang ups" in a reverse scenario with WireGuard, which tries to invoke netstack(wg).Outbound...() => netstack(tun).Inbound... when it sees new destinations (inbound).
Metadata
Metadata
Assignees
Labels
No labels