提交 aed70170 作者: Juan Batiz-Benet

msgio proper write

上级 9d05b352
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
}, },
{ {
"ImportPath": "github.com/jbenet/go-msgio", "ImportPath": "github.com/jbenet/go-msgio",
"Rev": "634f25d82673bbdb0b87b8d7e1b7a3df59ede671" "Rev": "7bdc5b738564871e1c0d5ca9449900d0d6773713"
}, },
{ {
"ImportPath": "github.com/jbenet/go-multiaddr", "ImportPath": "github.com/jbenet/go-multiaddr",
......
...@@ -17,7 +17,7 @@ const lengthSize = 4 ...@@ -17,7 +17,7 @@ const lengthSize = 4
type Writer interface { type Writer interface {
// Write writes passed in buffer as a single message. // Write writes passed in buffer as a single message.
Write([]byte) error Write([]byte) (int, error)
// WriteMsg writes the msg in the passed in buffer. // WriteMsg writes the msg in the passed in buffer.
WriteMsg([]byte) error WriteMsg([]byte) error
...@@ -79,8 +79,12 @@ func NewWriter(w io.Writer) WriteCloser { ...@@ -79,8 +79,12 @@ func NewWriter(w io.Writer) WriteCloser {
return &writer{W: w, lock: new(sync.Mutex)} return &writer{W: w, lock: new(sync.Mutex)}
} }
func (s *writer) Write(msg []byte) (err error) { func (s *writer) Write(msg []byte) (int, error) {
return s.WriteMsg(msg) err := s.WriteMsg(msg)
if err != nil {
return 0, err
}
return len(msg), nil
} }
func (s *writer) WriteMsg(msg []byte) (err error) { func (s *writer) WriteMsg(msg []byte) (err error) {
......
...@@ -20,10 +20,13 @@ func TestReadWrite(t *testing.T) { ...@@ -20,10 +20,13 @@ func TestReadWrite(t *testing.T) {
r := rand.New(rand.NewSource(time.Now().UnixNano())) r := rand.New(rand.NewSource(time.Now().UnixNano()))
for i := range msgs { for i := range msgs {
msgs[i] = randbuf.RandBuf(r, r.Intn(1000)) msgs[i] = randbuf.RandBuf(r, r.Intn(1000))
err := writer.Write(msgs[i]) n, err := writer.Write(msgs[i])
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if n != len(msgs[i]) {
t.Fatal("wrong length:", n, len(msgs[i]))
}
} }
if err := writer.Close(); err != nil { if err := writer.Close(); err != nil {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论