deadline: close conn should return io.EOF

This commit is contained in:
rkonfj 2024-08-07 21:00:18 +08:00
parent c6b22757be
commit bc7052ace7
No known key found for this signature in database
GPG Key ID: 9595E3A991503741
3 changed files with 16 additions and 4 deletions

View File

@ -81,7 +81,10 @@ func (c *MuxConn) Read(b []byte) (n int, err error) {
select {
case <-c.exit:
return 0, io.EOF
case <-c.deadlineRead.Deadline():
case _, ok := <-c.deadlineRead.Deadline():
if !ok {
return 0, io.EOF
}
return 0, N.ErrDeadline
case wsb, ok := <-c.inbound:
if !ok {
@ -308,8 +311,10 @@ func (l *MuxSession) nextFrame() error {
delete(l.dials, seq)
slog.Debug("ClientSideMuxConnClosed", "seq", c.seq)
}
default:
return fmt.Errorf("unsupport connmux cmd %d", cmd)
}
return fmt.Errorf("unsupport connmux cmd %d", cmd)
return nil
}
func (d *MuxSession) OpenStream() (net.Conn, error) {

View File

@ -53,7 +53,11 @@ func (c *PeerPacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error) {
case <-c.closedSig:
err = net.ErrClosed
return
case <-c.deadlineRead.Deadline():
case _, ok := <-c.deadlineRead.Deadline():
if !ok {
err = net.ErrClosed
return
}
err = N.ErrDeadline
return
case datagram := <-c.wsConn.Datagrams():

View File

@ -72,7 +72,10 @@ func (c *rdtConn) Read(b []byte) (n int, err error) {
case <-c.exit:
err = io.EOF
return
case <-c.deadlineRead.Deadline():
case _, ok := <-c.deadlineRead.Deadline():
if !ok {
return 0, io.EOF
}
err = N.ErrDeadline
return
case pkt, ok := <-c.inbound: