summaryrefslogtreecommitdiff
path: root/proto.go
diff options
context:
space:
mode:
authoranon5 <anon5clam@protonmail.com>2021-09-19 12:45:50 +0000
committeranon5 <anon5clam@protonmail.com>2021-09-19 12:45:50 +0000
commitbcc58cb3048faa146ed0f90b330ebbe791d53b5c (patch)
tree2373852a0557ea584a62134159eb646b15619be3 /proto.go
parentd6ba88b091f6c9be3b48ab0fe3f94211ee210700 (diff)
downloadmt-bcc58cb3048faa146ed0f90b330ebbe791d53b5c.tar.xz
Switch to Minetest 5.4.1 protocol and other changes
Diffstat (limited to 'proto.go')
-rw-r--r--proto.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/proto.go b/proto.go
index b859a39..30a94da 100644
--- a/proto.go
+++ b/proto.go
@@ -8,8 +8,6 @@ import (
"github.com/anon55555/mt/rudp"
)
-const ChannelCount = rudp.ChannelCount
-
// A Pkt is a deserialized rudp.Pkt.
type Pkt struct {
Cmd
@@ -29,6 +27,10 @@ func (p Peer) Send(pkt Pkt) (ack <-chan struct{}, err error) {
cmdNo = pkt.Cmd.(ToCltCmd).toCltCmdNo()
}
+ if cmdNo == 0xffff {
+ return nil, p.Close()
+ }
+
r, w := io.Pipe()
go func() (err error) {
defer w.CloseWithError(err)
@@ -78,7 +80,7 @@ func (p Peer) Recv() (_ Pkt, rerr error) {
extra, err := io.ReadAll(pkt)
if len(extra) > 0 {
- err = rudp.TrailingDataError(extra)
+ err = fmt.Errorf("%T: %w", cmd, rudp.TrailingDataError(extra))
}
return Pkt{cmd, pkt.PktInfo}, err
}