This repository was archived by the owner on Sep 17, 2020. It is now read-only.

Description
Long story short: I think we can do better with our parser code, ever so slightly, but I really want to codify the protocol better as a grammar.
I'm not so much worried about getting it right by hand -- I'm pretty confident in that -- but I want to be better about dropping bad connections. Right now, you only get your connection dropped if you input certain wrong values, but we don't exhaustively match, byte-by-byte, if something could possibly be valid.
My hope is that by using a a parser combinator like nom, we could very quickly bail out if anything was amiss. We won't let bad data through as-is, but handling all of the possible fail-fast points is not worth doing by hand, IMO.