Skip to content

Commit fb30712

Browse files
Vaelaternnhooyr
authored andcommitted
netconn: Fix SetDeadline methods
Closes #111 Closes #112
1 parent 3e63f82 commit fb30712

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

netconn.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,19 @@ func (c *netConn) SetDeadline(t time.Time) error {
134134
}
135135

136136
func (c *netConn) SetWriteDeadline(t time.Time) error {
137-
c.writeTimer.Reset(t.Sub(time.Now()))
137+
if t.IsZero() {
138+
c.writeTimer.Stop()
139+
} else {
140+
c.writeTimer.Reset(t.Sub(time.Now()))
141+
}
138142
return nil
139143
}
140144

141145
func (c *netConn) SetReadDeadline(t time.Time) error {
142-
c.readTimer.Reset(t.Sub(time.Now()))
146+
if t.IsZero() {
147+
c.readTimer.Stop()
148+
} else {
149+
c.readTimer.Reset(t.Sub(time.Now()))
150+
}
143151
return nil
144152
}

websocket_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ func TestHandshake(t *testing.T) {
130130
nc := websocket.NetConn(c)
131131
defer nc.Close()
132132

133+
nc.SetWriteDeadline(time.Time{})
134+
time.Sleep(1)
133135
nc.SetWriteDeadline(time.Now().Add(time.Second * 15))
134136

135137
for i := 0; i < 3; i++ {
@@ -153,6 +155,8 @@ func TestHandshake(t *testing.T) {
153155
nc := websocket.NetConn(c)
154156
defer nc.Close()
155157

158+
nc.SetReadDeadline(time.Time{})
159+
time.Sleep(1)
156160
nc.SetReadDeadline(time.Now().Add(time.Second * 15))
157161

158162
read := func() error {

0 commit comments

Comments
 (0)