Skip to content

Commit c986e7f

Browse files
nhooyrprogrium
authored andcommitted
fix timeout bug (#52)
Closes #51
1 parent 9ccc7bb commit c986e7f

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

conn.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,15 @@ func (c *serverConn) Close() (err error) {
4141
}
4242

4343
func (c *serverConn) updateDeadline() {
44-
idleDeadline := time.Now().Add(c.idleTimeout)
45-
if idleDeadline.Unix() < c.maxDeadline.Unix() {
46-
c.Conn.SetDeadline(idleDeadline)
47-
} else {
44+
switch {
45+
case c.idleTimeout > 0:
46+
idleDeadline := time.Now().Add(c.idleTimeout)
47+
if idleDeadline.Unix() < c.maxDeadline.Unix() {
48+
c.Conn.SetDeadline(idleDeadline)
49+
return
50+
}
51+
fallthrough
52+
default:
4853
c.Conn.SetDeadline(c.maxDeadline)
4954
}
5055
}

server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ func (srv *Server) handleConn(newConn net.Conn) {
209209
idleTimeout: srv.IdleTimeout,
210210
closeCanceler: cancel,
211211
}
212-
if int64(srv.MaxTimeout) > 0 {
212+
if srv.MaxTimeout > 0 {
213213
conn.maxDeadline = time.Now().Add(srv.MaxTimeout)
214214
}
215215
defer conn.Close()

0 commit comments

Comments
 (0)