Skip to content

Commit 3c3c519

Browse files
committed
bug: return io.EOF in Read(), comply with io.Reader and io.Writer
Fixes #391
1 parent f2e2fa3 commit 3c3c519

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

connection.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,10 @@ func (c *conn) Read(p []byte) (n int, err error) {
260260
if c.inboundBuffer.IsEmpty() {
261261
n = copy(p, c.buffer)
262262
c.buffer = c.buffer[n:]
263-
return n, nil
263+
if n == 0 && len(p) > 0 {
264+
err = io.EOF
265+
}
266+
return
264267
}
265268
n, _ = c.inboundBuffer.Read(p)
266269
if n == len(p) {
@@ -353,7 +356,7 @@ func (c *conn) Discard(n int) (int, error) {
353356
func (c *conn) Write(p []byte) (int, error) {
354357
if c.isDatagram {
355358
if err := c.sendTo(p); err != nil {
356-
return -1, err
359+
return 0, err
357360
}
358361
return len(p), nil
359362
}
@@ -362,7 +365,7 @@ func (c *conn) Write(p []byte) (int, error) {
362365

363366
func (c *conn) Writev(bs [][]byte) (int, error) {
364367
if c.isDatagram {
365-
return -1, gerrors.ErrUnsupportedOp
368+
return 0, gerrors.ErrUnsupportedOp
366369
}
367370
return c.writev(bs)
368371
}

gnet_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,7 @@ func testStop(t *testing.T, network, addr string) {
932932
func TestClosedWakeUp(t *testing.T) {
933933
events := &testClosedWakeUpServer{
934934
tester: t,
935-
BuiltinEventEngine: &BuiltinEventEngine{}, network: "tcp", addr: ":8888", protoAddr: "tcp://:8888",
935+
BuiltinEventEngine: &BuiltinEventEngine{}, network: "tcp", addr: ":9998", protoAddr: "tcp://:9998",
936936
clientClosed: make(chan struct{}),
937937
serverClosed: make(chan struct{}),
938938
wakeup: make(chan struct{}),

0 commit comments

Comments
 (0)