msgio proper write
Juan Batiz-Benet committed
Dec 11, 2014 at 00:24 UTC
aed70170dcc053cb599f56da3dc3999e02186a63
3 files changed
+12
-5
Godeps/Godeps.json
+1
-1
@@ -106,7 +106,7 @@
106
},
107
{
108
"ImportPath": "github.com/jbenet/go-msgio",
109
- "Rev": "634f25d82673bbdb0b87b8d7e1b7a3df59ede671"
109
+ "Rev": "7bdc5b738564871e1c0d5ca9449900d0d6773713"
110
},
111
{
112
"ImportPath": "github.com/jbenet/go-multiaddr",
Godeps/_workspace/src/github.com/jbenet/go-msgio/msgio.go
+7
-3
@@ -17,7 +17,7 @@ const lengthSize = 4
17
type Writer interface {
18
19
// Write writes passed in buffer as a single message.
20
- Write([]byte) error
20
+ Write([]byte) (int, error)
21
22
// WriteMsg writes the msg in the passed in buffer.
23
WriteMsg([]byte) error
@@ -79,8 +79,12 @@ func NewWriter(w io.Writer) WriteCloser {
79
return &writer{W: w, lock: new(sync.Mutex)}
80
}
81
82
-func (s *writer) Write(msg []byte) (err error) {
83
- return s.WriteMsg(msg)
82
+func (s *writer) Write(msg []byte) (int, error) {
83
+ err := s.WriteMsg(msg)
84
+ if err != nil {
85
+ return 0, err
86
+ }
87
+ return len(msg), nil
88
}
89
90
func (s *writer) WriteMsg(msg []byte) (err error) {
Godeps/_workspace/src/github.com/jbenet/go-msgio/msgio_test.go
+4
-1
@@ -20,10 +20,13 @@ func TestReadWrite(t *testing.T) {
20
r := rand.New(rand.NewSource(time.Now().UnixNano()))
21
for i := range msgs {
22
msgs[i] = randbuf.RandBuf(r, r.Intn(1000))
23
- err := writer.Write(msgs[i])
23
+ n, err := writer.Write(msgs[i])
24
if err != nil {
25
t.Fatal(err)
26
}
27
+ if n != len(msgs[i]) {
28
+ t.Fatal("wrong length:", n, len(msgs[i]))
29
+ }
30
}
31
32
if err := writer.Close(); err != nil {