Replaced all the assert()s, precondition()s, and fatalError()s with thrown errors as appropriate. Removes almost every source of crashes - especially ones caused by input the user has no control over - in the package.
Fixes #87 (unexpected packets with no active command cause an assertion failure)
Fixes #91 (server error before handshake throws invalidProtocolVersion() instead of the appropriate .server(ERR_Packet))
CI and README updates
Fixes the unit tests so they don't leave stale tables lying around.
With the rewrite finally back to being actively worked on, it became really obvious how easy these fixes were to make even in the existing code, and I decided users shouldn't have to wait any longer for them, even if the rewrite drops the next day.
Items of note:
assert()
s,precondition()
s, andfatalError()
s with thrown errors as appropriate. Removes almost every source of crashes - especially ones caused by input the user has no control over - in the package.invalidProtocolVersion()
instead of the appropriate.server(ERR_Packet)
)With the rewrite finally back to being actively worked on, it became really obvious how easy these fixes were to make even in the existing code, and I decided users shouldn't have to wait any longer for them, even if the rewrite drops the next day.