第四十五回スパルタンプログラミング
やりたいこと
- http2のストリームの理解と実装
- テストの作成をしつつ進めたい
やったこと
08/01 移動日
- 05:30に起きて、チャリトレ。二人に抜かれた。自転車は心臓とペダリング効率をメインタームと思い込み、短時間で効率よくトレーニングしたい。
- 13:00には牛久着、持ち家ってすばらしい。考え方変わるなぁ、買えないけど。14:30農作業開始、畑の土が粘土質過ぎるので指示に従い樹皮の土をまぜる。
- http2テストの空テストファイル作成、これ作るだけでコードの癒着が分かる。
- http2とsslがくっついてたので、切り離した。
- 何をテストしようか?
- いろいろなリクエストに対して答えたい。
- 誰かがテスト作ってるだろ。
- とりま、できることは内容はともかくとしてもレスポンスを返し続ける部分を考えてみれば?
1〜3はconnection確立時のやりとり
- connection prefaceの受信
- settings headerの受信
- settings headerの送信
- リクエストの受信(GET)
- レスポンスの送信
- いろいろなリクエストに対して答えたい。
- 08/02 牛久新実家
- 06:00から農作業開始、黙々と作業。楽しい。
- 昼は土浦の「うなぎ錦水」へいった。
- (前日の)「誰かがテスト作ってるだろ」はh2specがテストに使えそう。
- 08/03 帰社日
- 06:00過ぎに父親と一緒に家を出て、それぞれの会社に出社。
- 送受信のコード整理
- firefoxのリクエストヘッダ(END_STREAM)の後にwindow updateフレームがくるのは正しいのか?
WINDOW_UPDATE は、END_STREAM フラグを設定したフレームを送信したピアから送信できます。 これは、受信者が "half-closed (remote)" や "closed" 状態のストリームで WINDOW_UPDATE フレームを受信できることを意味します。 受信者はこれをエラーとして扱ってはいけません (MUST NOT) (5.1節)。 (http://summerwind.jp/docs/rfc7540/)
- つまり、stream stateを管理しなきゃ。
- firefoxのリクエストヘッダ(END_STREAM)の後にwindow updateフレームがくるのは正しいのか?
- 08/04 帰宅後
- 前日の疲れとれず、太閤記読んで寝るのみ
- 08/05 帰宅後
- connectionの初期化関数、streamの初期化関数
- frame_headerはstruct streamのメンバにした方が良い?
- connectionの初期化関数、streamの初期化関数
- 08/06 帰宅後
- 18分仮眠して書くつもりが、爆睡しおきたのが24時だったのでやめた。
- 08/07 帰宅後
- 盆前の仕事を終わらして帰って料理したり、洗濯したりでおしまい。休息日。