一汁三菜

自分が楽しいと思うこと、マラソン、旅行、その他日々の記録をしたい。

TCP SYNパケットに付けたオレオレオプションを受信する

TCPヘッダーを作って送信する事について書いたので、今度は受信でも…と思いきや、受信は思いのほか簡単だった。

/net/ipv4/tcp_input.c中のtcp_parse_options()に、オプションごとの処理がswitch文で書かれているので、そこにオレオレTCPオプションを処理するコードを追加すればいいだけ。

注意する点としては、送信の時とは違って、ヘッダーの中を1バイトずつ舐めているのを気に留めておけばOK。

解析した結果は、tcp_options_received構造体の中に保存して、他所で使いまわしましょう。