Due how our code was structured it was possible that we not always handle the lifetime of the underlying quiche connection correctly. Beside this it was also possible to convert a CLOSED channel state to an ACTIVE again.
Modifications:
Rewrite the state machine in QuicheQuicChannel to correctly handle the different states and also make it impossible to change a final state like CLOSED
Correctly handle removal of the QuicheQuicChannel from the datastructures in QuicheQuicChannel
Motivation:
Due how our code was structured it was possible that we not always handle the lifetime of the underlying quiche connection correctly. Beside this it was also possible to convert a CLOSED channel state to an ACTIVE again.
Modifications:
Result:
Correct handling of lifetime and state.