From fdb9d2d49501fce4e054c672beda7d7f98e014b8 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Thu, 27 Sep 2018 09:09:19 -0600 Subject: [PATCH] don't try to send packets after closing the session --- session.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/session.go b/session.go index ce9b40f57..caaff1914 100644 --- a/session.go +++ b/session.go @@ -527,18 +527,21 @@ runLoop: continue } - if err := s.sendPackets(); err != nil { - s.closeLocal(err) - } - if !s.receivedTooManyUndecrytablePacketsTime.IsZero() && s.receivedTooManyUndecrytablePacketsTime.Add(protocol.PublicResetTimeout).Before(now) && len(s.undecryptablePackets) != 0 { s.closeLocal(qerr.Error(qerr.DecryptionFailure, "too many undecryptable packets received")) + continue } if !s.handshakeComplete && now.Sub(s.sessionCreationTime) >= s.config.HandshakeTimeout { s.closeLocal(qerr.Error(qerr.HandshakeTimeout, "Crypto handshake did not complete in time.")) + continue } if s.handshakeComplete && now.Sub(s.lastNetworkActivityTime) >= s.config.IdleTimeout { s.closeLocal(qerr.Error(qerr.NetworkIdleTimeout, "No recent network activity.")) + continue + } + + if err := s.sendPackets(); err != nil { + s.closeLocal(err) } }