Unverified Commit 57c272b5 authored by Steven Allen's avatar Steven Allen Committed by GitHub

Merge pull request #72 from Wondertan/fix/reset-error

Remove dependency on go-libp2p-core and introduce new errors.
parents cd781ef2 b36a1814
...@@ -8,8 +8,6 @@ import ( ...@@ -8,8 +8,6 @@ import (
"net" "net"
"testing" "testing"
"time" "time"
tmux "github.com/libp2p/go-libp2p-core/mux"
) )
func init() { func init() {
...@@ -391,7 +389,7 @@ func TestResetAfterEOF(t *testing.T) { ...@@ -391,7 +389,7 @@ func TestResetAfterEOF(t *testing.T) {
sb.Reset() sb.Reset()
n, err = sa.Read([]byte{0}) n, err = sa.Read([]byte{0})
if n != 0 || err != tmux.ErrReset { if n != 0 || err != ErrStreamReset {
t.Fatal(err) t.Fatal(err)
} }
} }
......
...@@ -7,11 +7,14 @@ import ( ...@@ -7,11 +7,14 @@ import (
"sync" "sync"
"time" "time"
"github.com/libp2p/go-libp2p-core/mux"
pool "github.com/libp2p/go-buffer-pool" pool "github.com/libp2p/go-buffer-pool"
) )
var (
ErrStreamReset = errors.New("stream reset")
ErrStreamClosed = errors.New("closed stream")
)
// streamID is a convenience type for operating on stream IDs // streamID is a convenience type for operating on stream IDs
type streamID struct { type streamID struct {
id uint64 id uint64
...@@ -74,7 +77,7 @@ func (s *Stream) waitForData() error { ...@@ -74,7 +77,7 @@ func (s *Stream) waitForData() error {
case <-s.reset: case <-s.reset:
// This is the only place where it's safe to return these. // This is the only place where it's safe to return these.
s.returnBuffers() s.returnBuffers()
return mux.ErrReset return ErrStreamReset
case read, ok := <-s.dataIn: case read, ok := <-s.dataIn:
if !ok { if !ok {
return io.EOF return io.EOF
...@@ -112,7 +115,7 @@ func (s *Stream) returnBuffers() { ...@@ -112,7 +115,7 @@ func (s *Stream) returnBuffers() {
func (s *Stream) Read(b []byte) (int, error) { func (s *Stream) Read(b []byte) (int, error) {
select { select {
case <-s.reset: case <-s.reset:
return 0, mux.ErrReset return 0, ErrStreamReset
default: default:
} }
if s.extra == nil { if s.extra == nil {
...@@ -160,14 +163,14 @@ func (s *Stream) Write(b []byte) (int, error) { ...@@ -160,14 +163,14 @@ func (s *Stream) Write(b []byte) (int, error) {
func (s *Stream) write(b []byte) (int, error) { func (s *Stream) write(b []byte) (int, error) {
if s.isClosed() { if s.isClosed() {
return 0, errors.New("cannot write to closed stream") return 0, ErrStreamClosed
} }
err := s.mp.sendMsg(s.wDeadline.wait(), s.id.header(messageTag), b) err := s.mp.sendMsg(s.wDeadline.wait(), s.id.header(messageTag), b)
if err != nil { if err != nil {
if err == context.Canceled { if err == context.Canceled {
err = errors.New("cannot write to closed stream") err = ErrStreamClosed
} }
return 0, err return 0, err
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment