immediately remove sessions that were closed remotely

We only need to keep sessions that were closed locally, in order to
retransmit the CONNECTION_CLOSE packet. For sessions that were closed by
the peer, we don't need to wait for any more packets, and there's also
no CONNECTION_CLOSE to retransmit. The same applies for sessions that
were destroyed when receiving a Version Negotiation or a Retry packet.
This commit is contained in:
Marten Seemann
2018-11-15 19:14:34 +07:00
parent 1dd0b9a635
commit 65cca7b726
8 changed files with 46 additions and 4 deletions

View File

@@ -44,6 +44,16 @@ func (mr *MockSessionRunnerMockRecorder) onHandshakeComplete(arg0 interface{}) *
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "onHandshakeComplete", reflect.TypeOf((*MockSessionRunner)(nil).onHandshakeComplete), arg0)
}
// removeConnectionID mocks base method
func (m *MockSessionRunner) removeConnectionID(arg0 protocol.ConnectionID) {
m.ctrl.Call(m, "removeConnectionID", arg0)
}
// removeConnectionID indicates an expected call of removeConnectionID
func (mr *MockSessionRunnerMockRecorder) removeConnectionID(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "removeConnectionID", reflect.TypeOf((*MockSessionRunner)(nil).removeConnectionID), arg0)
}
// retireConnectionID mocks base method
func (m *MockSessionRunner) retireConnectionID(arg0 protocol.ConnectionID) {
m.ctrl.Call(m, "retireConnectionID", arg0)