summaryrefslogtreecommitdiff
path: root/proto.go
diff options
context:
space:
mode:
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
}