summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-08-23 11:36:12 +0200
committerHimbeer <himbeer@disroot.org>2024-08-23 11:36:12 +0200
commit3b78a789bb205356c3aff64926f8699070db7a61 (patch)
treea318dc9e034dbc8aecadfe79c7909cd7ff6df12e
parentf0c81db0341efc8dc7b9f483df6bd6dc70c0077b (diff)
Fix empty / connect packets being forwarded to rudp caller
This causes "EOF" errors that don't affect further receive operations. They occur because the higher-level mt wrapper expects a 16-bit command ID that isn't there.
-rw-r--r--rudp/recv.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/rudp/recv.go b/rudp/recv.go
index f5ac236..d8cd7e1 100644
--- a/rudp/recv.go
+++ b/rudp/recv.go
@@ -150,6 +150,11 @@ func (c *Conn) processRawPkt(data []byte, pi PktInfo) (err error) {
return TrailingDataError(data[off:])
}
case rawOrig:
+ // Don't forward initial empty packet to caller.
+ if len(data[off:]) == 0 {
+ break
+ }
+
c.gotPkt(Pkt{
Reader: bytes.NewReader(data[off:]),
PktInfo: pi,