-
Notifications
You must be signed in to change notification settings - Fork 36
Closed
Labels
Description
Handshake is a state-machine-like algorithm, where the server can send one of many packet types, and we react accordingly. The current algorithm works but allows state transitions which aren't supposed to happen in the protocol (e.g. if the server sends two auth switch requests, we don't fail). Refactor the algorithm to perform stronger validation.
This task should also provide a more modular implementation to handshake, where plugin logic is separated from the main algorithm, so that #313 can be implemented.