tombo2-progress’s diary

できるだけ毎日1時間を切り取ってここに晒す。誤字脱字気にしない。日本語が崩壊するのも気にしない。最終的にまとめて本ブログに書く

とにかくflagが厄介

Connection phaseで5byte目で判断できない厄介なケースのまとめ

Protocol::HandshakeResponse41

4              capability flags, CLIENT_PROTOCOL_41 always set
4              max-packet size
1              character set
string[23]     reserved (all [0])

頭の部分がこれで来る。 string[23]で判断できなくはない。

Protocol::SSLRequest:

4              capability flags, CLIENT_SSL always set
4              max-packet size
1              character set
string[23]     reserved (all [0])

HandshakeResponse41と同じ。 パケットのフィールドはこれで全部

Protocol::AuthSwitchResponse

パケットのフィールド全部がstring. headerとかの目印がない。。。 文字として認識できる、5byte目が0x20以上かどうか(かつ0xfeとかじゃない)で判断してみる

string[EOF]    auth plugin response

よくよく見てみると判断できなくはないが、毎パケット23byteが全て0x00か見るのは避けたい、、、 パフォーマンスは考えずにまずはきれいに分類できるようにしてチューニングは現実のパケットがわかってきてからにしよう

.