fix timeout bug (#52)

Closes #51
This commit is contained in:
Anmol Sethi 2017-08-11 17:45:54 -04:00 committed by Jeff Lindsay
parent 9ccc7bbb64
commit c986e7ff5f
2 changed files with 10 additions and 5 deletions

13
conn.go

@ -41,10 +41,15 @@ func (c *serverConn) Close() (err error) {
}
func (c *serverConn) updateDeadline() {
idleDeadline := time.Now().Add(c.idleTimeout)
if idleDeadline.Unix() < c.maxDeadline.Unix() {
c.Conn.SetDeadline(idleDeadline)
} else {
switch {
case c.idleTimeout > 0:
idleDeadline := time.Now().Add(c.idleTimeout)
if idleDeadline.Unix() < c.maxDeadline.Unix() {
c.Conn.SetDeadline(idleDeadline)
return
}
fallthrough
default:
c.Conn.SetDeadline(c.maxDeadline)
}
}

@ -209,7 +209,7 @@ func (srv *Server) handleConn(newConn net.Conn) {
idleTimeout: srv.IdleTimeout,
closeCanceler: cancel,
}
if int64(srv.MaxTimeout) > 0 {
if srv.MaxTimeout > 0 {
conn.maxDeadline = time.Now().Add(srv.MaxTimeout)
}
defer conn.Close()