mirror of
https://github.com/slackhq/nebula.git
synced 2026-11-15 22:46:52 +01:00
udp: Fold buffer handoff into ListenOut
This commit is contained in:
1 parent
1fb77bdda5
commit
06035252b2
12 files changed
+45
-60
No files matched your search
@@ -142,8 +142,9 @@ func (u *RIOConn) bind(l *slog.Logger, sa windows.Sockaddr) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (u *RIOConn) ListenOut(r EncReader, flush func()) error {
|
||||
buffer := make([]byte, MTU)
|
||||
func (u *RIOConn) ListenOut(r EncReader, handoff func(bufs [][]byte) [][]byte) error {
|
||||
bufs := [][]byte{make([]byte, MTU)}
|
||||
buffer := bufs[0]
|
||||
|
||||
var lastRecvErr time.Time
|
||||
|
||||
@@ -164,7 +165,8 @@ func (u *RIOConn) ListenOut(r EncReader, flush func()) error {
|
||||
}
|
||||
|
||||
r(netip.AddrPortFrom(netip.AddrFrom16(rua.Addr).Unmap(), (rua.Port>>8)|((rua.Port&0xff)<<8)), buffer[:n:n])
|
||||
flush()
|
||||
bufs = handoff(bufs)
|
||||
buffer = bufs[0]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user