-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update quinn and rustls #320
Conversation
One strategy to avoid this might be to only generate
This is the correct refactoring. Concurrency limits are built-in to quinn now. |
I like the idea of delaying the
Oh, nice! Good to know there are fewer constants we have to configure. |
Thinking about the Lost-messages problem more, the client can be removed for any reason, and I hope I can find a solution to this problem that doesn't require being too careful in the future. Fortunately, there's a feature of
Therefore, I believe the main solution here is simply to have There's still the question of how to gracefully handle client exits, but that feature doesn't exist in Hypermine yet in the master branch (clients just quit, and servers say "dropping slow client"), so I don't need to solve that in this PR, since its purpose is to just update quinn. Anyway, I should be able to update this PR with the help you gave, hopefully enough to be a non-draft. |
77a9926
to
123efdd
Compare
rustls: 0.20.6 -> 0.21.7 quinn: 0.8.3 -> 0.10.2
Update rustls from 0.20.6 to 0.21.7.
Update quinn from 0.8.3 to 0.10.2.
Most changes are simple compatibility fixes, mostly involving turning previously-quinn-provided streams into loops with task spawns.
One small but potentially important change is that the
ClientEvent::Lost
message will always be sent when an error occurs, even if the connection was already closed from some other logic and the client was already cleaned up. To be robust to this kind of redundancy and potential race conditions, theon_client_event
method is set up to skip messages received from clients that were already cleaned up.