Skip to content

Commit

Permalink
Respect mux.ErrReset (#113)
Browse files Browse the repository at this point in the history
  • Loading branch information
Wondertan authored Mar 7, 2020
1 parent 68974da commit b8f591a
Showing 1 changed file with 25 additions and 3 deletions.
28 changes: 25 additions & 3 deletions p2p/transport/quic/stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,36 @@ import (
quic "github.com/lucas-clemente/quic-go"
)

const (
reset quic.ErrorCode = 0
)

type stream struct {
quic.Stream
}

var _ mux.MuxedStream = &stream{}
func (s *stream) Read(b []byte) (n int, err error) {
n, err = s.Stream.Read(b)
if serr, ok := err.(quic.StreamError); ok && serr.Canceled() {
err = mux.ErrReset
}

return n, err
}

func (s *stream) Write(b []byte) (n int, err error) {
n, err = s.Stream.Write(b)
if serr, ok := err.(quic.StreamError); ok && serr.Canceled() {
err = mux.ErrReset
}

return n, err
}

func (s *stream) Reset() error {
s.Stream.CancelRead(0)
s.Stream.CancelWrite(0)
s.Stream.CancelRead(reset)
s.Stream.CancelWrite(reset)
return nil
}

var _ mux.MuxedStream = &stream{}

0 comments on commit b8f591a

Please sign in to comment.