MySQL Packet読んでる
MySQLのパケットはStateを保持して読んでいくのが基本なので、State/Modeがコネクションごとに存在する。 それがよくわかるのが↓で、
ここの図がわかりやすい。
更に、Handshakeあたりは
こんな感じ。 Authentication exchange continuationは何なんだろう?
現時点で対応する、パラメータ固定にしようと思っているのは、 - Initial_handshakeはバージョン10を想定(HandshakeV9はnot support), Protocol::HandshakeV10 - 圧縮パケットは未定 - SSLはそのうち - HandshakeResponse41のみ対応 (HandshakeResponse320はnot support)
CLIENT_SECURE_CONNECTIONとCLIENT_PLUGIN_AUTHは要検討CLIENT_PLUGIN_AUTHはわかりやすいかも知れない。
Header含め単純なパケットを構造体に落とす構想はできたので、あと若干複雑なパケットを落とし込めば大体のパターンは網羅できそう。